记录一下阅读蝴蝶书的笔记,本篇为书中最后一部分:方法、代码风格、优美的特性、毒瘤、糟粕等。

方法

这一章主要介绍了一些方法集。这里写几个我不太熟悉的方法和要点吧。

  • array.join()

    对于IE6/7,使用array.join()连接大量字符串的效率确实优于使用+元素运算符。但是目前主流的浏览器,包括IE8以后的版本,都对+元素运算符连接字符串做了特别优化,性能已经显著高于array.join()

  • number.toExponential(fractionDigits)

    把这个number转换成一个指数形式的字符串。

  • number.toFixed(fractionDigits)

    将这个number转换成一个十进制形式的字符串。

毒瘤

  • 注意全局变量的引入。

  • JavaScript 中 Unicode 是16位的。包含65536个字符(基本多文种平面 Basic Multilingual Plane)。剩下的百万字符中的每一个都可以用一对字符来表示。Unicode 把一对字符视为一个单一的字符,而 JavaScript 认为一对字符是两个不同的字符。

  • 检测null的方式。

console.log(typeof null) //object

myValue === null大专栏  JavaScript 语言精粹笔记3span> //检测 null

if (myValue && typeof myValue === 'object') {
// myValue 是一个对象或数组!
}
  • parseInt 把字符串转化为整数的函数。它遇到非数字时会停止解析,所以parseInt('16')parseInt('16ton')产生相同的结果。

    如果该字符串第一个字符是0,那么该字符串会基于八进制而不是十进制来求职。在八进制中,8和9不是数字,所以parseInt('08')parseInt('09')都产生0作为结果。但parseInt()可以接受基数,因此parseInt('08',10)结果为8,建议总是加上这个基数参数。

  • JavaScript 的对象永远不会是真的空对象,因为它们可以送原型链中取得成员属性。

糟粕

  • 避免使用with语句。

  • 避免使用eval语句。

  • continue可能会降低运算性能。

  • 位运算符在 JavaScript 会非常慢。

    Java 里,位运算符处理的是整数。JavaScript 没有整数类型,它只有双精度的浮点数,因此,位运算符把它们的数字运算数先转换为整数,执行运算,在转换回去。JavaScript 的执行环境一般接触不到硬件,所以非常慢。

  • 避免使用包装对象。new Objectnew Array等。

  • 避免使用void

本系列结束。

JavaScript 语言精粹笔记3的更多相关文章

  1. JavaScript语言精粹笔记

    JavaScript语言精粹笔记 掌握语言的每个特性可以让你出风头,但是并不推荐,因为一部分的特性带来的麻烦可能远超本身的价值.正如书中所言,坏的材料并不能雕刻出好的作品,要成为一名更好的程序员,要取 ...

  2. JavaScript语言精粹 笔记06 方法

    JS包含了少量可用在标准类型上的标准方法. ArrayFunctionNumberObjectRegExpString Array array.concat(item...) concat方法返回一个 ...

  3. JavaScript语言精粹 笔记05 正则表达式

    正则表达式 正则表达式以方法的形式被用于对字符串中的信息进行查找.替换画图提取操作.可处理正则表达式的方法有:regexp.exec, regexp.test,string.match, string ...

  4. JavaScript语言精粹 笔记04 数组

    数组1 数组字面量2 长度3 删除4 列举5 混淆的地方6 方法7 维度 数组1 数组字面量 var empty = []; var numbers = [ 'zero', 'one', 'two', ...

  5. JavaScript语言精粹 笔记03 继承

    继承伪类对象说明符原型函数化部件 继承 JS不是基于类的,而是基于原型的,这意味着对象直接从其他对象继承. 1 伪类 JS提供了一套丰富的代码重用模式,它可以模拟那些基于类的模式,因为JS实际上没有类 ...

  6. JavaScript语言精粹 笔记02 函数

    函数函数对象函数字面量调用参数返回异常给类型增加方法递归作用域闭包回调模块级联套用记忆   函数 1 函数对象 在JS中函数就是对象.对象是“名/值”对的集合并拥有一个连接到原型对象的隐藏连接.对象字 ...

  7. JavaScript语言精粹 笔记01 语法 对象

    内容比较简单,只是从头梳理一下JS的知识 语法空白标识符数字字符串语句 对象对象字面量检索更新引用原型反射枚举删除减少全局变量污染  语法 1 空白 空白可能表现为格式化字符或注释的形式.空白通常没有 ...

  8. 1.javascript语言精粹笔记

    一.注释 /**/ // 采用这个 二.标识符 标识符被用于语句.变量.参数.属性名.运算符和标记三.数字 javascript只有一个单一的数字模型.它在内部被表示64位的浮点数. 没有分离出整形, ...

  9. javascript语言精粹-笔记

    walkDOM function walkTheDOM(node, func) { func(node); node = node.firstChild; while (node) { walkThe ...

随机推荐

  1. 二、Shell脚本高级编程实战第二部

    一.什么是变量? 变量就是一个固定的字符串替代更多更复杂的内容,当然内容里面可能还有变量.路径.字符串等等内容,最大的特点就是方便,更好开展工作 1.变量有环境变量(全局变量)和局部变量 环境变量就是 ...

  2. Pytorch基础——使用 RNN 生成简单序列

    一.介绍 内容 使用 RNN 进行序列预测 今天我们就从一个基本的使用 RNN 生成简单序列的例子中,来窥探神经网络生成符号序列的秘密. 我们首先让神经网络模型学习形如 0^n 1^n 形式的上下文无 ...

  3. vim下看C++代码

    看C++代码, 缺少合适的编辑器,捣鼓vim. 安装Vundle, 用于插件管理 git clone https://github.com/VundleVim/Vundle.vim.git ~/.vi ...

  4. 广义线性模型|logistics|Odds ratio|最大似然函数|LR|AIC|

    广义线性模型 y是分类变量 Link function:将分类变量和数值变量放在一起 使用得到结果0 or 1的概率值来评估选0 or1 函数关系: 正比例函数: logistics函数S型曲线: O ...

  5. Scapy-ARPspoof学习

    layout title tag date post Scapy模块学习之ARP欺骗 Python 2018-05-08 from scapy.all import Ether,ARP,sendp,g ...

  6. [LC] 451. Sort Characters By Frequency

    Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Input: ...

  7. SpringBoot项目后台对接微信支付开发——微信统一下单接口开发

    开始没找到微信支付的sdk.自己根据官方给的接口文档纯手写,各种xml转JSON,JSON转xml,加密解密,签名....整个人都是崩溃的 开发的第三天,发现有官方的sdk.心情一下子豁然开朗,整个人 ...

  8. Django连接SQL Server,安装相关扩展包及相关配置

    1.python下载 https://www.python.org/downloads/windows/ 2.根据当前windows和python的版本,下载pymssql相应的exe安装文件. ht ...

  9. 非参数检验|Sign test|Wilcoxon signed rank test|Wilcoxon rank sum test|Bootstrapping

    非参数检验条件没有参数,因此就没有分布,利用数据等级之间的差距,依次赋值之后再用参数方法测试.将连续型变量转化为离散型变量,即顺序变量.与参数检验相比,正态分布较弱(p值有可能不显著,浪费信息,比如最 ...

  10. JDBC介绍和Mybatis运行原理及事务处理

    本博客内容非自创,转载自以下三位,侵删: https://juejin.im/post/5ab7bd11f265da23906bfbc5 https://my.oschina.net/fifadxj/ ...