zoukankan      html  css  js  c++  java
  • 容易混淆的JavaScript基础知识之语法部分

    1. type 属性: 默认的 type 就是 javascript, 所以不必显式指定 type 为 javascript

    2. javascript 不强制在每个语句结尾加 “;” , javascript 会自动加分号, 但是在某些情况下会改变程序的语义, 所以最好主动加 “;”

    3. 两个相等运算符比较

        ‘==’ 相等( 值相等 ), 它会自动转换数据类型再比较, 很多时候会得到非常诡异的结果

        ‘===’ 严格相等( 数据类型和值都相等 ) , 它不会自动转换数据类型, 如果数据类型不一致, 返回false, 如果一致, 再比较

    4. NaN 与所有其他值都不相等, 包括它自己:

        NaN === NaN; // false

        唯一能判断 NaN 的方法是通过 isNaN() 函数

        isNaN(NaN); // true

    5. 浮点数比较

        浮点数在运算过程中会产生误差, 因为计算机无法精确表示无限循环小数。 要比较两个浮点数是否相等, 只能计算它们之差的绝对值, 看是否小于某个阈值:Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true

    6. null 和 undefined

        大多数情况下,我们都应该用 null , undefined 仅仅在判断函数参数是否传递的情况下有用

    7. 出于代码的可读性考虑,创建数组建议使用 '[ ]',而不使用 'new Array';

    8. 如果一个变量没有通过 'var' 声明就被使用,那么该变量就自动被声明为全局变量。使用 var 声明的变量则不是全局变量,它的范围就该被限制在该变量被声明的函数体内

    9. 启用 strict 模式(强制通过 var 声明变量)

    10. 多行字符串用反引号表示

    11. 使用模版字符串

    12. 要获取字符串某个指定位置的字符,使用类似 Array 的下标操作, 索引号从 0 开始。 字符串是不可变的, 如果对

      字符串的某个索引赋值, 不会有任何错误,但是也没有任何效果

    13. 直接给 Array 的 length 赋一个新的值会导致 Array 大小的变化

    14. 如果通过索引赋值时, 索引超过了范围, 同样会引起 `Array` 大小的变化, 但是不会有任何错误, 在编写代码时, 不建议直接修改 `Array` 的大小, 访问索引时要确保索引不会越界

    15. 数字 30 和字符串 '30' 是不同的元素

    16. slice() 的起止参数包括开始索引, 不包括结束索引。

    17. 如果不给 slice() 传递任何参数, 它就会从头到尾截取所有元素。 利用这一点, 我们可以很容易地复制一个 Array

    18. 空数组继续 `pop` 不会报错,而是返回 `undefined`

    19. `concat()` 方法并没有修改当前 `Array`, 而是返回了一个新的 `Array`,`concat()` 方法可以接收任意个元素和 `Array`, 并且自动把 `Array` 拆开, 然后全部添加到新的 `Array` 里

    20. `javascript` 对象属性名必须是一个有效的变量名。 如果属性名包含特殊字符, 就必须用 `''` 括起来

    21. 如果我们要检测 `xiaoming` 是否拥有某一属性, 可以用in操作符, 不过要小心, 如果 `in` 判断一个属性存在, 这个属性不一定是`xiaoming` 的, 它可能是 `xiaoming` 继承得到的

    22. 要判断一个属性是否是 `xiaoming` 自身拥有的,而不是继承得到的,可以用 `hasOwnProperty()` 方法

    23. JavaScript把 `null`、`undefined`、`0`、`NaN` 和空字符串 `''` 视为 `false`,其他值一概视为 `true`

    24. 由于 `Array` 也是对象, 而它的每个元素的索引被视为对象的属性, 因此, `for ... in` 循环可以直接循环出 `Array` 的索引

    25. `for ... in` 循环由于历史遗留问题, 它遍历的实际上是对象的属性名称, `for ... of` 循环则完全修复了这些问题, 它只循环集合本身的元素

  • 相关阅读:
    BootStrap练习
    表单控件练习
    K近邻算法原理
    CSS 边框和颜色
    SVG平移和旋转
    SVG进阶练习
    SVG路标(marker)
    SVG 曲线与文字
    python函数与异常处理
    if-elif-else分支判断语句(附加continue和break)---举例说明
  • 原文地址:https://www.cnblogs.com/wxblogs/p/7797302.html
Copyright © 2011-2022 走看看