美文网首页
读《JS权威指南》

读《JS权威指南》

作者: 春暖花已开 | 来源:发表于2021-05-09 22:24 被阅读0次

1、Number类定义的toString()方法可以接收表示转换基数的可选参数,如果不指定则基于十进制。同样,也可以将数字转换为其他进制数(范围2~36之间)

const num = 14
const numStr = num.toFixed(3)  // 14.000 保留三位小数
console.log(typeof numStr)  // string 获取类型

const b = num.toString(2)  // 1110 转化为二级制

const e = num.toString(8)  // 16 转化为八进制

const t = num.toString()  // 14  默认是十进制

const hex = num.toString(16)  // e 转化为十六进制

2、可选的分号
通常来说,如果一条语句“(”、“[”、“/”、“+” 或 “-” 开始,那么极有可能和前一条语句合在一起解析。比较常见的是以“(” 和 “[” 开始的语句。所以,就有些程序员喜欢保守地在语句前加上一个分号。

let y = x + f
(a + b).toString()
// 会被解析为
let y = x + f(a + b).toString()

如果当前语句和下一行语句无法合并解析,js会在第一行后填补分号,这是通用规则,但有两个例外:

  • 1、在涉及 return、break 和 continue语句的场景,如果这三个关键字后紧跟着换行,js会在换行处填补分号;
  • 2、在涉及 ++--运算符的时候,这些运算符可以作为表达式的前缀,也可以作为后缀。
    如:
// 例一
return
true;
js会解析成:
return; true;
而不是:
return true;

// 例二
x
++
y
js会解析成:
x; ++y;
而不是:
x++; y;

3、包装对象
字符串不是对象,但是有属性。原因在于,只要引用了字符串 s 的属性,js就会将字符串值通过 new String(s)的方式转换成对象,这个对象继承了字符串的方法,并被用来处理属性的引用。一旦属性引用结束,这个新创建的对象就会销毁(其实在实现上并不一定创建或销毁这个临时对象,然而整个过程看起来是这样)。

同字符串一样,数字和布尔值也有各自的方法:通过Number()和Boolean()构造函数创建一个临时对象,这些方法的调用均来自于这个临时对象。null 和 undefined没有包装对象:访问他们的属性会造成一个类型错误。

name = 'Lynn'
name.len = 4  // 创建一个临时对象,并给其len属性赋值为4,随即销毁这个对象
console.log(name.len)  // 打印undefined,通过原始的字符串值创建一个新字符串对象,尝试读取其len属性,这个属性必然不存在

存取字符串、数字或布尔值的属性时,创建的临时对象称为包装对象,它只是偶尔用来区分值与对象。通常,包装对象被看做是一种实现细节,而不用特别关注。由于字符串、数字、布尔值的属性都是只读的,并且不能给它们定义新属性,因此需要明白它们是有别于对象的。


4、类型转换 js会根据需要自行转换类型。


5、转换和相等性


6、替换对象的方法(记录日志消息)

function trace(o, m) {
    const orgin = o[m]
    o[m] = () => {
        console.log(new Date().toLocaleString(), '---Entering---')
        const result = orgin.apply(this, arguments)
        console.log(new Date().toLocaleString(), '---Exiting---')
        return result
    }
}

// 使用
trace(obj, 'eat')
obj.eat()

7、高阶函数示例

// 定义一个高级函数(操作函数的函数)
function not(f) {
    return function() {
        var result = f.apply(this, arguments)
        return !result
    }
}

var even = function(x) {
    return x % 2 === 0
}

var odd = not(even)
const arr = [1, 3, 5]
arr.every(odd)

8、localStorage
localStorage作用域是限定在文档源级别的。文档源是通过协议、主机名及端口三者来确定的。


9、debug映射到实际文件

--sourcemap

相关文章

  • 读《JS权威指南》

    1、Number类定义的toString()方法可以接收表示转换基数的可选参数,如果不指定则基于十进制。同样,也可...

  • JS权威指南

    JS权威指南 书中错误p161,isArray 函数中的 Function.isArray => Array.is...

  • js 权威指南

    js 采用的是 二进制浮点数, 在运算符取值的时候是四舍五入 字符串比大小其实比的是 ASCII 码值, js 字...

  • js权威指南笔记

    字符串不是对象,为什么具备属性? 只要引用了字符串的属性,JavaScript 就会将字符串通过new Strin...

  • 2017年10月22日

    《Hadoop权威指南》第9章 9.4 P270-P276《Hadoop权威指南》第10章《Hadoop权威指南》...

  • 技术书单

    Java性能权威指南 hadoop权威指南 hbase权威指南 大型网站系统与Java中间件实践 Effectiv...

  • 无标题文章

    # JavaScript权威指南2/3章 ## 第二章:词法结构 ### 2.1字符集 * JS使用Unicode...

  • Object属性及方法

    1.创建对象 1.1对象字面量来创建对象,如下 let book={ title:'js权威指南', auth...

  • Vue.js权威指南

    一、遇见Vue.js 1.MVP,从MVC演化而来,Controller/Presenter负责逻辑的处理,完全把...

  • javascript事件-- js权威指南

    17. 事件处理 异步事件驱动编程模型事件类型只是一个字符串如:‘mouseover’,‘keydown’之类的,...

网友评论

      本文标题:读《JS权威指南》

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