编写高质量js
文章平均质量分 61
btshjhewei
这个作者很懒,什么都没留下…
展开
-
js中的字符串长度
众所周知String对象的length属性能够返回字符串的长度,不管字符是单字节还是双字节,都作为一个长度单位来计算。因此要准确的获取字符长度,必须通过手工来写。下面介绍两种方式:1、循环遍历字符串,根据字符的编码,来判断当前字符是双字节还是单字节,然后递加字符串的字节数。String.prototype.lengthSingle = function(str){var b = 0;原创 2015-12-29 11:08:45 · 8296 阅读 · 0 评论 -
改善javaScript118个建议-检测内置的数据类型
改善javaScript118个建议-检测内置的数据类型使用typeof运算符返回一个用于识别其运算数据类型的字符串。对于任何变量来说,使用typeof运算符总是以字符串的形式返回以下6种类型之一:“number”“string”“boolean”“object”“function”“undefined” 不幸的是,使用typeof检测null,返回的是“object”,而不是”nul翻译 2015-12-07 14:02:20 · 400 阅读 · 0 评论 -
几种检验数字的方法区别 isNaN、isFinite
isNaN():首先认识NaN , NaN是IEEE 754定义的一个特殊数值。它不表示一个数字。尽管下面的表达式返回的是truetypeof NaN ==='number' ;//返回trueNaN产生的情况有两种:1、在对非数字进行数字转换的时候。比如:parseInt('runningSnail'); 返回NaN2、在做数学元算的时候,有参与计算的元素为NaN原创 2015-12-08 12:38:45 · 8242 阅读 · 0 评论 -
动态调用函数:再解apply和call
在开发过程中,特别是复杂控件封装时,常会用到动态调用函数。那么动态调用函数实则就是利用call和apply方法来实现的。call和apply的区别其实call和apply基本没有什么太大的区别,只是传递给函数的参数方式不同罢了。apply是以数组的形式进行的参数传递,而call方法可以同时传递多个参数。利用apply以数组的形式进行参数传递的特性,在很多时候能够使我们的程序更优美。比如下面原创 2016-02-17 09:39:07 · 476 阅读 · 0 评论 -
Javascript是单线程的深入分析
本来想总结一下的,网上却发现有人已经解释的很清楚了,特转过来。这也解释了为什么在用自动化测试工具来运行dumrendtree时设定的超时和测试case设定的超时的关联性。面试的时候发现99%的童鞋不理解为什么JavaScript是单线程的却能让AJAX异步发送和回调请求,还有setTimeout也看起来像是多线程的?还有non-blocking IO, event loop等概念很转载 2016-06-27 20:45:12 · 428 阅读 · 0 评论 -
理解js中的new
new 操作符在有上面的基础概念的介绍之后,在加上new操作符,我们就能完成传统面向对象的class + new的方式创建对象,在Javascript中,我们将这类方式成为Pseudoclassical。基于上面的例子,我们执行如下代码 var obj = new Base();这样代码的结果是转载 2016-06-27 21:16:50 · 333 阅读 · 0 评论 -
理解js中的new ——2
1.如果就一个函数,没有返回值,没有prototype成员,然后使用new,会是什么结果呢?如果一个函数没有返回值,那么如果不使用new来创建变量,那么该变量的值为undefined.如果用了new,那么就是Object.说明一个函数的默认的Prototype是Object.2.如果函数有返回值,但是返回值是基本类型。那么new出来的myTest还是object.因为基本类转载 2016-06-27 21:38:58 · 526 阅读 · 0 评论