数组:Array是一种可以按顺序保存数据的数据类型
let names=['晓梅','小米','小帅帅']
查询:names[0] 长度:names.length 赋值names[1]='小秘密'
增值:names.push('小白兔','小狐狸')增值到末尾;names.unshift('小肉肉')添加到数组的开头
删值:names.pop()删末尾;names.shift()删除第一个元素;names.splice(操作的下标,删除的个数)
数组.sort()方法可以排序
函数:是被设计为执行特定任务的代码块
函数的声明语法:function 函数名(){函数体} 函数名尽量小驼峰式命名
函数的调用:函数名() ;函数自己不会执行,只有调用才会执行,随时调用,可重复调用
函数传参: function 函数名(形参1,形参2){} 调用:函数名(实参1,实参2),用户不给实参undefined,形参赋值,程序更严谨
函数返回值:return return后面的代码不会被执行 函数可以没有return,默认返回值为undefined
补充:js中实参和形参个数可以不一致,形参过多,会自动填补undefined;实参过多,多余的实参会被忽略(arguments里面装着所有的实参,是个伪数组)
函数作用域:局部作用域,作用于函数内的代码环境,函数内的let的变量为局部变量
变量的访问原则:在能够访问到的情况下,先局部,再全局(采取就近原则)
匿名函数:没有函数名的函数,无法调用使用,有函数名的函数为具名函数
匿名函数使用方式:函数表达式;立即执行函数
函数表达式: let fn=function (){函数体} 调用方式:fn()
立即执行函数:不需要调用,立即执行,防止变量污染,多个立即执行函数要用;隔开
1.(function(){})();
2.(function(){}());
逻辑运算内的短路:通过左边就得到整个式子的结果,所以没必要再判断右边
&&:左边为false就短路
||:左边为true就短路
转换为Boolean型:Boolean(内容)
"",0,undefined,null,false,NaN转换为布尔类型后都是false,其余为 true
隐士转换:1.有字符串的加法 ""+1,结果是1
2.减法会使字符串""转换为0
3.null转换为0
4.undefined经过数字转换后变为NaN