JavaScript的坑总结

1、少用全局变量 尤其少使用隐式全局变量定义 (变量名 = 值 不写var) **
当使用全局变量的时候,在作用域的任何位置改变全局变量的值,不安全
全局变量还能这样定义 window.变量名 = 变量值;
2、
js的作用域是全局作用域,在函数任何位置定义都会被提前声明,但这样会引起混乱,所有推荐在函数的最前端提前声明;**
3、JavaScript有个自动修复分号的机制,但插入位置会引起麻烦,

return{       
  //大括号跟return写在一行,推荐这样写
}                
return
{
  //习惯换行写的人 这样写可能会返回undefined
}
 //return  推荐第一种写法 否则js可能会return underfine  或者代码结尾手动补全分号

4、typeof 判断数组 或者null 返回的是object;

function  isArray(obj) {
    return Object.prototype.toString.call(obj) ==='[object Array]';
} //判断是否为数组

还一直方法专门了解对象的类型(数组 ,null ,还是RegExp)
变量 instanceof Array //变量是数组?
变量 instanceof RegExp //变量是正则?
5、尽量用 === 而不用 == 用 ==的时候会进行一步强制类型转换
如 return “” == 0 true;
不过有时候偷懒的时候可以用 == 比如string类型等于number类型
6、引用类型变量 对象
对象进行复制操作的时候,(把一个对象复制给另一个对象,改变一个对象,另一个对象也会相应进行改变)

var obj1 = new Object ();
var obj2 = obj1;
obj1.age = 18;
console.info(obj2.age) // 18;

7、JavaScript没有块级作用域 导致在for循环定义的变量溢出

for(var i=0;i<10;i++){
do(i);
}
console.info(i);// 10

8、先定义一个全局变量 再定义一个局部变量;再调用该变量时,返回的是局部变量的值,如果还想返回全局变量,则调用window.变量名;

var color = "blue";
function getColor(){
    var  color = "red";
    return color;
};
console.info(getColor());

未完待续 期望大家补充

    原文作者:爱穿裤衩的小粗腿城
    原文地址: https://www.jianshu.com/p/41e84fe8d661
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞