解释型语言与编译型语言的区别
编译型语言和解释型语言的区别 (biancheng.net)
JS中命名
字母、数字、下划线、$、汉字
其中首字母不能为数字
全局执行上下文与函数执行上下文
在执行js脚本时,会对上下文环境进行预处理
全局上下文
将用var声明的变量,赋值为undifined,并添加为window的属性
将function声明的函数,赋值为undifined,并添加为window的方法
函数上下文
在调用函数时,会生成一个函数上下文
将用var声明的变量,赋值为undifined
在调用函数时,生成一个函数执行上下文,当调用函数结束后,会销毁这个上下文对象
NaN == NaN 的结果为false,每一个NaN都是不同的
对于number浮点类型的运算,若小数点后是0,则计算结果会自动变成整数
对于一个数值字符串,对它做自增自减运算,会转换成number类型
便利数组的方法
普通for循环
for...in
for...of
forEach((item,index,arr)=>{执行语句})
js "多线程"
JavaScript 进阶(一)JS的"多线程" - ma_fighting - 博客园 (cnblogs.com)
匿名函数的优点:
1、非匿名函数在定义时,就已经创建函数对象和作用域对象,它会占用内存空间;
匿名函数,仅在调用时,才临时创建函数对象和作用域链对象;调用完,立即释放,所以匿名函数比非匿名函数更节省内存空间
2、不会造成全局变量的污染
可变参数
function paramTest(userid, ...info){
console.info(userid);// C23102
console.info(info); // [ 'test@test.com', '19900020200', 'bob' ]
for (let item of info){
console.info(item); //test@test.com
//19900020200
//bob
}
}
paramTest("C23102", "test@test.com", "19900020200", "bob");