Array.prototype.slice.call()等几种将arguments对象转换成数组对象的方法
js / 2017-10-10 16:33:59 4,654 views

因为arguments并不是真正的数组对象,只是与数组类似而已,所以它并没有slice这个方法,而Array.prototype.slice.call(arguments, 1)可以理解成是让arguments转换成一个数组对象,让arguments具有slice()方法。要是直接写arguments.slice(1)会报错。 <span class="hljs-keyword&q…

Object.prototype.toString.call(obj)检测对象类型与obj.tostring()
js / 2017-9-28 11:47:41 4,839 views

使用typeof bar === “object”检测”bar”是否为对象有什么缺点?如何避免? 这是一个十分常见的问题,用 typeof 是否能准确判断一个对象变量,答案是否定的,null 的结果也是 object,Array 的结果也是 object,有时候我们需要的是 “纯粹” 的 object 对象。如何避免呢?比较好的方式是: console.log(Object.prototype.t…

js中的数值转换Number(),parseInt(),parseFloat详解
js / 2017-9-27 23:11:57 4,809 views

有3个函数可以把非数值转换为数值:Number(),paresInt(),parseFloat(); Number()可以用于任何数据类型, paresInt(),parseFloat()专门用于把字符串转换成数值 Number()函数的转换规则 如果是布尔值,true,false分别转换为1,0 如果是数字值,只是简单的传入和返回。 如果是null值,返回0. 如果是undefined,返回Na…

JavaScript 运行机制详解:Event Loop
js / 2017-9-25 15:39:22 4,258 views

一、为什么JavaScript是单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。 JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript…

Javascript 严格模式use strict详解
js / 2017-9-21 15:39:08 4,445 views

1.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:”严格模式”(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。   2.为什么用严格模式 – 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为; – 消除代码运行的一些不安全之处,保证代码运行的安全; – 提高编译器效率,增加运行速度; – 为未来新版…