JS基础知识
运算符
运算符 算术运算符 + - * / i++ i-- 逻辑运算符 && || ! 与或非 比较运算符 <= >= <> ==(弱等于) !=(弱不等于) ===(强等于) !==(强不等于) 赋值运算符 = += -= *= /=
流程控制语句
流程控制语句 1. if else if else if (a>1){ console.log('大于1'); }else if(a>9){ console.log('大于9'); }else{ console.log(a) }; 2. switch switch (day){ case 2: console.log('等于2'); break; case 3: console.log('等于3'); default: console.log('等于4'); }; VM742:8 等于4 3.for循环打印数字0-9 for(var i=0;i<10;i++){ console.log(i) }; for循环遍历数组 var a=['1',1,22] 方式一: for (var i in a){ console.log(i,a[i]) }; 方式二: for (var i =0;i<a.length;i++){ console.log(i,a[i]) }; 4.while循环 var b=0; while(b<10){ console.log(b); b++; } 5.三元运算 var a=10; var c=11; a>c?a:c;
函数初识
函数 函数定义 function 函数名(参数){ 代码; 返回值 } 1.普通函数 function func(a,b){ console.log(a,b) }; 不写返回值是undefined 返回多个值得写,数组 2.匿名函数 var f=function(a,b){ console.log(a,b); return ['null',undefined,1] }; f(1,2); 1 2 console.log(f(2,4)); 1 2 ["null", undefined, 1] 3.自执行函数 (function(a){ console.log(a) })(4); 4 4.箭头函数 var func=v=>v+1; var 函数名=参数=>返回值;
函数的作用域
函数的作用域: 1.一般的和python一样,一层一层往外找 2.闭包 function func(){ var city='beijing'; function inner(){ console.log(city); } return inner }; f=func(); f(); beijing 3.词法分析:如果在函数内部声明了变量,并且使用了该变量, 会在函数调用之前进行此法分析,生成一个AO对象,把用到的变量变成undefinded类型,在去重新赋值 var city='beijing'; function func(){ console.log(city); var city='shanghai'; console.log(city); }; func(); VM1108:2 undefined VM1108:4 shanghai
创建对象
创建对象 var person=new Object(); person.name='alex';//给对象添加属性 person.age=12; person['name']; "alex" person.age 12 构造函数 function Person(name){ this.name=name; }; Person.prototype.func1=function(){ console.log(this.name,'***') }; var p1=new Person('alex');//实例化一个对象 p1.name#通过对象掉属性 "alex" p1.func1()#通过对象掉方法 VM1542:2 alex ***
Js常用的对象
Map对象
Map对象:Map数据结构,类似于对象,键的范围不限于字符串,各类的值(包括对象)都可以当键 var m=new Map(); m.set('name','alex');#给map对象添加属性 m.get('name') "alex" var o={'age':18};#给map对象添加一个对象属性 m.set(o,'***'); m.get(o); "***" m.has('name')#是否含有这个属性 true m.delete(name)#删除这个属性,必须加引号 false m.delete('name'); true
Date对象
Date对象 创建Date对象 var time=new Date(); console.log(time.toLocaleDateString()); VM2071:1 2019/3/18 console.log(time.toLocaleString()); VM2131:1 2019/3/18 下午4:41:32 var d4=new Date(2001,3,12,12,20,20,300);//参数为年月日 时分秒 毫秒 console.log(d4.toLocaleString()); VM2352:1 2001/4/12 下午12:20:20 Date对象的方法: var d = new Date(); //getDate() 获取日 //getDay () **获取星期 ,数字表示(0-6),周日数字是0 //getMonth () 获取月(0-11,0表示1月,依次类推) //getFullYear () 获取完整年份 //getHours () 获取小时 //getMinutes () 获取分钟 //getSeconds () 获取秒 //getMilliseconds () 获取毫秒 //getTime () **返回累计毫秒数(从1970/1/1午夜),时间戳
JSON对象
var j={'name':'alex',age:12}; typeof j "object" var str=JSON.stringify(j);//对象转化为字符串 typeof str; "string" var p1=JSON.parse(str);//字符串转化为对象 typeof p1; "object" p1.name "alex"
RegExp()对象
RegExp对象 正则对象两种创建方式 var s='abb'; 1. var re=new RegExp('^a'); re.test(s);//测试所在的字符串是否符合正则规则 true 2.(推荐) var re1=/^a/; re1.test(s); true 正则和string 的4 种方式 mathch search split replice var s='hello world'; s.match(/o/g);//g是全局匹配的标志, (2) ["o", "o"] s.search(/o/g);//加不加g无所谓,都只匹配第一个符合条件的o 4 s.split(/o/g); (3) ["hell", " w", "rld"] s.replace(/o/g,'哈哈'); "hell哈哈 w哈哈rld" s "hello world" //坑 var re=/o/g; var s='hello world'; re.test(s); true re.lastIndex//表示匹配到内容的下一个索引 5 re.test(s); true re.lastIndex 8 re.test(s); false re.lastIndex 0
Math对象(相当于python内置函数,直接调用)
Math对象(相当于python内置函数,直接使用) var a=-1; undefined Math.abs(a); 1 Math.exp(a); 0.36787944117144233 Math.random(); 0.5468710918806954 var b=4.5; undefined Math.floor(b);//直接舍去小数后面的部分 4 Math.round(b);//四舍五入 5 Math.abs(x) 返回数的绝对值。 exp(x) 返回 e 的指数。 floor(x) //小数部分进行直接舍去。 log(x) 返回数的自然对数(底为e)。 max(x,y) 返回 x 和 y 中的最高值。 min(x,y) 返回 x 和 y 中的最低值。 pow(x,y) 返回 x 的 y 次幂。 random() //返回 0 ~ 1 之间的随机数。 round(x) //把数四舍五入为最接近的整数。 sin(x) 返回数的正弦。 sqrt(x) 返回数的平方根。 tan(x) 返回角的正切。
s=1.5 print(round(s))#2 s1=2.5 print(round(s1))#2 s1=3.5 print(round(s1))#4 s1=4.5 print(round(s1))#4 s1=5.5 print(round(s1))#6 s1=6.5 print(round(s1))#6 python中。5 偶数有坑,奇数正常