JavaScript的坑总结

作者: 爱穿裤衩的小粗腿城 | 来源:发表于2016-12-28 11:14 被阅读138次

    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());
    

    未完待续 期望大家补充

    相关文章

      网友评论

        本文标题:JavaScript的坑总结

        本文链接:https://www.haomeiwen.com/subject/vxhyvttx.html