• 第3章 语言基础(上)


    1. 语法

    • 最佳实践及注意事项:
      • 标识符使用小驼峰
      • 始终在控制语句中使用代码块,即使要执行的只有一条语句

    2. 关键字和保留字

    • 最佳实践及注意事项:
      • 不要使用关键字和保留字作为标识符和属性名,以确保兼容过去和未来的ECMAScript版本

    3. 变量

    • 最佳实践及注意事项:
      • 不推荐改变变量保存值的类型
      • 不推荐通过省略var操作符定义全局变量。严格模式下会抛出ReferenceError
      • 严格模式下不能定义名为eval和arguements的变量,否则会导致语法错误
      • 使用let在全局作用域中声明的变量不会成为window对象的属性(var会)
      • 对于let,不能依赖条件声明模式
      • 使用const声明变量必须同时初始化变量
      • 最好不使用var,const优先,let次之

    4. 数据类型

    • 原始类型:Null, Undefined, String, Boolean, Number, Symbol
    • 复杂数据类型:Object

    严格来讲,函数也是对象,不代表一种数据类型,但函数也有自己特殊的属性,所以使用typeof校验时,函数返回function以作区分

    4.1 Undefined

    • 最佳实践及注意事项:
      • 默认情况下,任何未经初始化的变量都会取得undefined值
      • 一般来说,永远不用显式地给某个变量设置undefined值
      • 无论是声明还是未声明,typeof返回的都是字符串"undefined"
      • 建议在声明变量的同时进行初始化,这样当typeof返回undefined时就能知道,这是因为指定的变量未声明,而不是声明了未初始化

    4.2 Null

    • 最佳实践及注意事项:
      • typeof null 会返回"object",null值表示一个空对象指针
      • 在定义将来要保存对象值的变量时,建议使用null来初始化。这样,只要检查这个变量的值是不是null就可以知道这个变量是否在后来被重新赋予了一个对象的引用
      • undefined和null在表面上相等,即undefined == null返回true,而undefined == null返回false

    4.3 Boolean

    • 最佳实践及注意事项:
      • true和false两个布尔值不同于数值,因此true不等于1,false不等于0
      • 可以调用Boolean()函数将其他类型的值转换为布尔值
      • 像if等流程控制语句会自动执行其他类型值到布尔值的转换
    数据类型 转换为true的值 转换为false的值
    Boolean true false
    String1 非空字符串 ""空字符串
    Number 非零数值(包括无穷值) 0、NaN
    Object 任意对象 null
    Undefined N/A(不存在) undefined

    4.4 Number

    • 最佳实践及注意事项:
      • 八进制字面量在严格模式下是无效的,会导致JS引擎抛出语法错误
      • 正零和负零在所以情况下都被认为是等同的
      • 在小数点后面没有数字的情况下,数值就会变成整数,如果数值本身就是整数,只是小数点后面跟着0(如1.0),那也会被转换为整数
      • 由于JS使用IEEE754数值,在浮点数的计算中会存在精度问题
      • 在ECMAScript中,0、-0或+0相除会返回NaN
      • 任何涉及NaN的操作始终返回NaN
      • NaN不等于包括NaN在内的任何值
      • 建议始终给parseInt()传入第二个参数,即指定进制
      • parseFloat()只解析十进制,不能指定进制

    4.5 String

    • 最佳实践及注意事项:
      • 如果字符串中包含双字节字符,那么length属性返回的值可能不是准确的字符数
      • 字符串是不可变的,要修改某个变量中的字符串值,必须先销毁原始字符串,再将新值保存到该变量
      • 用加号操作符给一个值加上一个空字符串""可以将其转换为字符串
      • 所有插入模板字面量的值都会使用toString()强制转换为字符串
      • 嵌套的模板字符串`无须转义
      • 可以使用默认的String.raw标签函数获取原始模板字面量,即
          console.log(`u00A9`);  // ©
          console.log(String.raw`u00A9`);    // u00A9
      
  • 相关阅读:
    vue集成百度UEditor富文本编辑器
    HTTPS访问站点,出现证书问题解决(转载) 规格严格
    JSSE 提供的 动态 debug 追踪模式 规格严格
    javax.net.debug 规格严格
    Oralce null 规格严格
    pipe 规格严格
    (总结)ibatis 动态传入表名和列名 规格严格
    垃圾回收算法简介 规格严格
    转载(正则表达式的分类) 规格严格
    长度为0的数组 规格严格
  • 原文地址:https://www.cnblogs.com/hycstar/p/14071504.html
Copyright © 2020-2023  润新知