• JavaScript语言精粹_糟粕


    全局变量

      JavaScript没有连接器(linker),所有的编译单元都载入一个公用的全局对象中。

      一共有3种方式定义全局变量。

      1. var foo = value;

      2. window.foo = value;

      3. foo = value;

      这本来是为方便初学者而有意让变量在使用前无需声明,但忘记声明变量是一个非常普遍的错误,而JavaScript的策略是让那些忘记预先声明的变量成为全局变量,这导致查找bug非常困难。

    作用域

      JavaScript的语法来源于C,在大多数语言中,一般来说声明变量的最好的地方是在第一次用到它的地方。但JavaScript中没有块级作用域,所以更好的方式是在每个函数的开头部分声明所有变量。

    自动插入分号

      JavaScript有一个机制,它通过自动插入分号来修正有缺陷的程序,千万不要依靠它,它可能会掩盖更为严重的错误

      比如:

    return
    {
         status:true   
    };
    

      

    return{
         status:true   
    };
    

      返回的是两种不同的结果,第一个:自动分号让它变成了undefined。第二个返回一个包含status成员元素的对象。

    保留字

      许多单纯被JavaScript保留,它们不能被用来命名变量或参数,当保留字被用作字面量的键值时,他们必须被引号括起来,它们不能被用在点表示法中,所以又是必须使用括号表示法。

    Unicode 

      当设计JavaScript的时候,Unicode预计最多会有65536个字符,而从那以后它的容量慢慢增长到了拥有1百万个字符。

    typeof

      typeof运算符返回一个用于识别运算数类型的字符串。但是它无法区分数组和对象。

    parseInt

      它是一个将字符串转换为整数的函数,它在遇到非数字是会停止解析,所以parseInt("16")与parseInt("16 tons")产生相同的结果。

    浮点数

      二进制的浮点书不能正确地处理十进制的小数,因此0.1+0.2不等于0.3.这是JavaScript中最经常被报告的bug,而且它是遵循二进制浮点数算数标准(IEEE 754)而有意导致的结果。

      但浮点数中的整数运算是精确的,所以小数表现出来的错误可以通过制定精度来避免。

    NaN 

      它是IEEE 754中定义的一个特殊的数量值,它表示不是一个数字,尽管typeof NaN === ‘number’ //true.

      该值可能会在试图将非数字形式的字符串转换为数字是产生。

    伪数组

      JavaScript中没有真正的数组,在JavaScript的数组中,不必给他们设置纬度,而且它们永远不会产生越界错误。

    假值

      0、NaN、‘’(空字符串)、false、null、undefined

    hasOwnProperty

      hasOwnProperty是一个方法,而不是一个运算符,所以在任何对象中,它可能会被一个不同的函数甚至一个非函数的值所替换。

    对象

      JavaScript的对象中没有真的空对象,他们可以从原型链中取得成员元素。

  • 相关阅读:
    170308、oracle查看被锁的表和解锁
    网络安全、Web安全、渗透测试之笔经面经总结(二)
    网络安全、Web安全、渗透测试之笔经面经总结(一)
    Linux 磁盘新增、分区、挂载等
    需求文件requirements.txt的创建及使用
    每天00:00,MySQL定时弹出一个taskeng.exe
    解决 python中 使用tesserocr,File "tesserocr.pyx", line 2401, in tesserocr._tesserocr.image_to_text 报错问题
    ycharm调整代码长度分割线
    jenkins配置用户角色权限,根据不同权限显示视图、Job
    Python图片裁剪实例代码(如头像裁剪)
  • 原文地址:https://www.cnblogs.com/tyjz/p/7224921.html
Copyright © 2020-2023  润新知