如何转为number
- Number(‘1’) === 1
- parseInt(‘1’, 10) === 1
- parseFloat(‘1.23’) === 1.23
- ‘1’ - 0
- +‘1’
全局对象window
- 浏览器在加载时首先会创建window对象
- window的属性分为两类: ECMAScript规定的和浏览器私有的(alert,prompt,confirm,console, history, document等)
- document属于dom规范范畴 ,history属于bom规范范畴
详解Number
- Number(‘1’) 类型转换
- var n = new Number(1) 1 => {valueOf(): 1,..},通过valueOf获取到原始值1
- 使用直接量赋值 var n = 1;在早期是没有toString方法的,而现在直接使用toString会临时转换为Number对象包装后的“1”然后使用toString,最后把这个包装对象丢掉(磨砂次),这就是为什么给n.xxx = 1后,然后取n.xxx是undefined的原因
parseInt 与 toString进制问题
- parseInt第二个形参传入一个进制,代表将第一个实参是什么进制的,然后转化为10进制输出
- toString可以传入一个参数代表将要转化的进制,把调用者转化为对应进制的字符串
slice
- 为什么叫slice?外国人切面包叫slice,js slice可以“切”数组,字符串。
5个falsy值
- 0
- NaN
- ‘’
- null
- undefined
- false
所有对象都是真值
原型
var o1 = {};
o1.proto === Object.prototype
var n1 = new Number(1)
n1.proto === Number.prototype
n1.proto.proto === Object.prototype
proto 和 prototype
String.prototype是String的公用属性的引用
s.proto 也是String的公用属性的引用
var 对象 = new 函数();
对象.proto === 函数.prototype 它们的值是 [Prototype]
var obj = 函数.prototype
obj.proto === Object.prototype
var obj2 = 函数
obj2.proto === Function.prototype
Function.proto === Function.prototype
Function,prototype.proto === Object.prototype
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com