zoukankan      html  css  js  c++  java
  • JS权威指南读书笔记(一)

    第一章 JavaScript概述
    1 JS是一门高端的、动态的、弱类型的编程语言,非常适合面向对象和函数式的编程风格。
     
    第二章 词法结构
    1 JS程序是用Unicode字符集编写的。
    2 JS是区分大小写的,但是Html并不区分大小写。
    3 JS会忽略程序中标识之间的空格,多数情况下,同样会忽略换行符。
    4 回车符(u000D)和换行符(u000A)在一起被解析为一个单行结束符。
    空格换行符格式控制符可以用在JS的注释、字符串直接量和正则表达式直接量中,但不能用在标识符中。
    Unicode转义字符可以用在字符串直接量、正则表达式直接量和标识符中(关键字除外)。也可以出现在注释中,但由于JS会将注释忽略,只是被当成上下文中的ASCII字符处理。
    7 注释的两种格式:
        a 双斜杠"//"后文本 
        b "/*"和"*/"包含文本
    8 JS标识符必须以字母下划线(_)美元符号($)开始
    9 可选的分号:如果一条语句以"("、"["、"/"、"+" 或 "-" 开始,那么它极有可能和前一条语句合在一起解析。在这些符号前加上";",会避免解析混淆。
    10 如果当前语句和下一条语句无法合并解析,JS则在第一行后填补分号,这是通用规则。但是有两个例外:
        a 涉及return、break和continue语句场景中
        b 涉及"++"和"--"运算符语句场景中
     
    第三章 类型、值和变量
    1 数据类型:数字 字符串 布尔值 null undefined 和对象(object)
    2 JS解释器有自己的内存管理机制,可以自动对内存进行垃圾回收。
    3 JS中所有数字均用64位浮点数表示,然而需要注意的是,数组索引和位操作符是基于32位整数的
    4 ECMAScript标准不支持八进制直接量,但某些实现可以允许采用八进制形式表示整数。
    5 JS中算数运算在溢出(overflow)、下溢(underflow)或被零整除时不会报错。
        a 下溢:当运算结果无限接近于零并比能表示的最小值还小的情形
    6  二进制浮点数和四舍五入错误,未来版本或许会支持十进制数组类型来避免这些舍入问题。
        a 0.3 - 0.2 == 0.2 - 0.1 => false
    const now = new Date, now.setDate(now.getDate() - 2); 取得两天之后的时间戳。
    8 字符串的长度是其所含16位值的个数。
    9 在ES5中,字符串直接量可以拆分成数行,每行必须以反斜线()结束,反斜线行结束符都不算是字符串直接量的内容。
    10 如果函数没有返回值,则返回undefined。
    11 包装对象
        a var s = "test"; s.len = 4; var t = s.len; t的值是undefined
    12 任何方法都无法更改一个原始值
    13 类型转换图表
        
        a null == undefined // 两值被认为相等
        b 其他原始值(null没有转换为原始值的valueOf和toString方法,所以跟任何原始值比较都是false)比较,一般均会先转换为数字
    14 单元运算符(+,-,!)
        a x + "" // 等价于String(x)
        b +x // 等价于 Number(x)
        c !!x // 等价于 Boolean(x)
    15 Number对象的方法
        a toFixed() // 根据小数点后的指定位数将数字转换成字符串
        b toExponential() // 使用指数计数法将数字转换为指数形式的字符串
        c toPrecision() //根据指定的有效数字位数将数字转换成字符串
    16 parseInt() 
        a 第一个参数是字符串,如果不是,将会调用toString()方法转为字符串
        b 第二个参数是radix,合法的取值范围是2~36,
        c 不能正确转换为数字,返回NaN
        d 如果radix参数是undefined、0或者不存在,radix根据第一个参数不同情况默认值不同
    17 对象到原始值的转换,如果是没有目的的转换(指明转为数字或者字符串),一般会先调用valueOf(返回默认对象),然后调用toString(返回原始值)。
    18 对于所有非日期的对象来说,对象到原始值的转换基本上是对象到数字的转换,日期对象则使用对象到字符串的转换模式。
    19 函数作用域是指在函数内声明的所有变量在函数体内始终是可见的。
    20 当定义一个函数时,它实际上保存一个作用域链当调用这个函数时,它创建一个新的对象来存储它的局部变量,并将这个对象添加至保存的那个作用域链上,同时创建一个新的更长的表示函数调用作用域的链。闭包的不同就在于,作用域链是以对象的形式串联起来的,跟c语言变量存在栈中,有着本质的区别,函数结束后会释放。
      
  • 相关阅读:
    在CSS中,让页面里的字体变清晰,变细
    前端路由优缺点
    HBuilder和HBuilderX有什么区别?
    HTML5有哪些新特性,移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分HTML和HTML5?
    js中判断奇数或偶数
    遍历数组的方法
    数组的方法
    免费搜索引擎提交(登录)入口大全
    Vue.js详解
    简述JavaScript模块化编程(二)
  • 原文地址:https://www.cnblogs.com/liutie1030/p/5719081.html
Copyright © 2011-2022 走看看