【Javascript语言精粹】笔记摘要
现在大部分编译语言中都流行要求强类型。其原理在于强类型允许编译器在编译时检测错误。我们能越早检测和修复错误,付出的代价越小。Javascript是一门弱类型的语言,所以Javascript编译器不能检测出类型错误。
NaN是一个数值,它表示一个不能产生正常结果的运算结果。NaN不等于任何值,包括它自己。可以用函数isNaN(number)检测NaN。
Infinity表示所有大于1.79769313486231570e+308的值。
/运算符可能会产生一个非整数结果,即使两个运算数都是整数。
对象字面量是一种可以方便地按指定规格创建新对象的表示法。
对象通过引用来传递。它们永远不会被复制。
Javascript中的函数就是对象。对象是“名/值”对的集合并拥有一个连到原型对象的隐藏连接。对象字面量产生的对象连接到Object.prototype。函数对象连接到Function.prototype(该原型对象本身连接到Object.prototype)。每个函数在创建时会附加两个隐藏属性:函数的上下文和实现函数行为的代码。
函数的变量不像普通的变量那样将被初始化为undefined,而是在该函数被调用时初始化为实际提供的参数的值。
调用一个函数会暂停当前函数的执行,传递控制权和参数给新函数。除了声明时定义的形式参数,每个函数还接收两个附加的参数:this和arguments。
参数this在面向对象编程中非常重要,它的值取决于调用的模式。
arguments并不是一个真正的函数。它只是一个“类似数组”的对象。arguments拥有一个length属性,但它没有任何数组的方法。
模块模式的一般形式是:一个定义了私有变量和函数的函数;利用闭包创建可以访问私有变量和函数的特权函数;最后返回这个特权函数,或者把它们保存到一个可访问的地方。
在大多数语言中,一个数组的所有元素都要求是相同的类型。Javascript允许数组包含任意混合类型的值。
每个数组都有一个length属性。和大多数其他语言不同,Javascript数组的length是没有上届的。如果用大于或等于当前length的数字作为下标来存储一个元素,那么length值会被增大以容纳新元素,不会发生数组越界错误。而把length设小将导致素有下标大于等于新length的属性被删除。
方法名 | 意义 |
array.contact(item...) |
contact方法产生一个新数组,它包含一份array的浅复制并把一个或 多个参数item附加在其后。如果参数item是一个数组,那么它的每个元 素会被分别添加。与其功能类似的有array.push(item...) |
array.join(separator) |
join方法把一个array构造成一个字符串。它先把array中的每个元素构 造成一个字符串,接着用一个separator分隔符把它们连接在一起。默 认的separator是逗号。 |
array.pop() |
pop和push方法使得数组array可以像堆栈一样工作。pop方法移除array中 的最后一个元素并返回该元素。如果该array是empty,它会返回undefined。 |
array.push(item...) |
push方法把一个或多个参数item附加到一个数组的尾部。和contact方法 不同的是,它会修改array,如果参数item是一个数组,它会把参数数组 作为单个元素整个添加到数组中,并返回这个array的新长度值。 |
array.reverse() | reverse方法反转array里的元素的顺序,并返回array本身。 |
array.shift() |
shift方法移除数组array中的第1个元素并返回该元素。如果这个数 组array是空的,它返回undefined。 |
array.slice(start,end) |
slice方法对array中的一段做浅复制。首先复制array[start],一直 复制到array[end]为止。end参数是可选的,默认值是该数组的长度 array.length。 |
array.sort(comparefn) |
sort方法对array中的内容进行排序。它把要被排序的元素都视为字符串, 所以不能正确地给一组数字排序。 |
array.splice(start,deleteCount,item...) |
splice方法从array中移除一个或多个元素,并用新的item替换它们。 参数start是从数组array中移除元素的开始位置。参数deleteCount是 要移除的元素个数。如果有额外的参数,那些item会插入到被移除元 素的位置上。它返回一个包含被移除元素的数组。 |
array.unshift(item...) |
unshift方法像push方法一样,用于把元素添加到数组中,但它是 把item插入到array的开始部分而不是尾部。它返回array的新的length。 |
function.apply(thisArg,argArray) |
apply方法调用function,传递一个会被绑定到this上的对象和一个 可选的数组作为参数。 |
number.toExponential(fractionDigits) |
toExponential方法把这个number转换成一个指数形式的字符串。可 选参数fractionDigits控制其小数点后的数字位数。它的值必须在0~20。 |
number.toFiexed(fractionDigits) |
toFiexed方法把这个number转换成为一个十进制数形式的字符串。可 选参数fractionDigits控制其小数点后的数字位数。它的值必须在 0~20,默认为0。 |
number.toPrecision(precision) |
toPrecision方法把这个number转换成为一个十进制形式的字符串。可 选参数precision控制数字的精度。它的值必须在0~21。 |
number.toString(radix) |
toString方法把这个number转换成为一个字符串。可选参数radix控 制基数。它的值必须控制在2~36。默认的radix是以10为基数的。 |
object.hasOwnProperty(name) |
如果这个object包含一个名为name的属性,那么hasOwnProperty方法 返回true。原型链中的同名属性是不会被检查的。这个办法对name就 是“hasOwnProperty”时不起作用,此时会返回false。 |
regexp.exec(string) |
exec方法是使用正则表达式的最强大(和最慢)的方法。如果它成功地 匹配regexp和字符串string,它会返回一个数组。如果匹配失败,它会返回null。 |
regexp.test(string) |
test方法是使用正则表达式的最简单(和最快)的方法。如果该regexp 匹配string,它返回true;否则,它返回false。不要对这个方法使用g标识。 |
string.charAt(pos) |
charAt方法返回在string中pos位置处的字符。如果pos小于0或者大于等 于字符串的长度string.length,它会返回空字符串。Javascript没有字 符类型。这个方法返回的结果是一个字符串。 |
string.charCodeAt(pos) |
charCodeAt方法同charAt一样,只不过它返回的不是一个字符串,而是以 整数形式表示的在string中的pos位置处的字符的字符码位。如果pos小于 0或大于字符串的长度string.length,它返回NaN。 |
string.concat(string...) |
concat方法把其他的字符串连接在一起来构造一个新的字符串。它很少被 使用,因为用+运算符更为方便。 |
string.indexOf(searchString,position) |
indexOf方法在string内查找另一个字符串searchString。如果它被找到, 返回第1个匹配字符的位置,否则返回-1.可选参数position可设置从 string的某个指定位置开始查找。 |
string.lastIndexOf(searchString,position) |
lastIndexOf方法和indexOf方法类似,只不过它是从该字符串的末尾开始 查找而不是从开头。 |
string.localeCompare(that) |
localeCompare方法比较两个字符串。如果比较字符串的规则没有详细说明。 如果string比字符串that小,那么结果为负数。如果它们使相等的,那么 结果为0。这类似于array.sort比较函数的约定。 |
string.match(regexp) |
match方法让字符串和一个正则表达式进行匹配。它根据g表示来决定如何进 行匹配。如果没有g标识,那么调用string.match(regexp)的结果与调用 regexp.exec(string)的结果相同。如果regexp带有g标识,那么它生成一个 包含所有匹配(除捕获分组之外)的数组。 |
string.replace(searchValue,replaceValue) |
replace方法对string进行查找和替换操作,并返回一个新的字符串。参数 searchValue可以是一个字符串或一个正则表达式对象。如果它是一个字符串, 那么searchValue只会在第1次出现的地方被替换。如果searchValue是一个正 则表达式并且带有g标识,它会替换所有的匹配。如果没有带g标识,它会仅替 换第1个匹配。 |
string.search(regexp) |
search方法和indexOf方法类似,只是它接收一个正则表达式对象作为参数而 不是一个字符串。如果找到匹配,它返回第1个匹配的首字符位置,如果没有 找到匹配,则方法-1。此方法会忽略g标识,且没有position参数。 |
string.slice(start,end) |
slice方法复制string的一部分来构造一个新的字符串。如果start参数是负数, 它将与string.length相加。end参数是可选的,且默认值是string.length。 如果end参数是负数,那么它将与string.length相加。end参数等于要去的最 后一个字符的位置值加上1。要想得到从位置p开始的n个字符,就用 string.slice(p,p+n)。同类的方法有string.substring和array.slice。 |
string.split(separator,limit) |
split方法把这个string分割成片段来创建一个字符串数组。可选参数limit 可以限制被分割的片段数量。separator参数可以是一个字符串或一个正则表达式。 |
string.substring(start,end) | substring的用法和slice方法一样,只是它不能处理负数的参数。 |
string.toLocaleLowerCase() |
toLocaleLowerCase方法返回一个新字符串,它使用本地化的规则把这个 string中的所有字母转换为小写格式。这个方法主要用在土耳其语上。 |
string.toLocaleUpperCase() |
toLocaleUpperCase方法返回一个新字符串,它使用本地化的规则把这个 string中的所有字母转换为大写格式。这个方法主要用在土耳其语上。 |
string.toLowerCase() |
toLowerCase方法返回一个新的字符串,这个string中的所有字母都被转 换为小写格式。 |
string.toUpperCase() |
toUpperCase方法返回一个新的字符串,这个string中的所有字母都被转 换为大写格式。 |
string.fromCharCode(char...) | fromCharCode函数根据一串数字编码返回一个字符串。 |
【Javascript语言精粹】笔记摘要的更多相关文章
- JavaScript语言精粹笔记
JavaScript语言精粹笔记 掌握语言的每个特性可以让你出风头,但是并不推荐,因为一部分的特性带来的麻烦可能远超本身的价值.正如书中所言,坏的材料并不能雕刻出好的作品,要成为一名更好的程序员,要取 ...
- JavaScript 语言精粹笔记3
方法 毒瘤 糟粕 记录一下阅读蝴蝶书的笔记,本篇为书中最后一部分:方法.代码风格.优美的特性.毒瘤.糟粕等. 方法 这一章主要介绍了一些方法集.这里写几个我不太熟悉的方法和要点吧. array.joi ...
- JavaScript语言精粹 笔记06 方法
JS包含了少量可用在标准类型上的标准方法. ArrayFunctionNumberObjectRegExpString Array array.concat(item...) concat方法返回一个 ...
- JavaScript语言精粹 笔记05 正则表达式
正则表达式 正则表达式以方法的形式被用于对字符串中的信息进行查找.替换画图提取操作.可处理正则表达式的方法有:regexp.exec, regexp.test,string.match, string ...
- JavaScript语言精粹 笔记04 数组
数组1 数组字面量2 长度3 删除4 列举5 混淆的地方6 方法7 维度 数组1 数组字面量 var empty = []; var numbers = [ 'zero', 'one', 'two', ...
- JavaScript语言精粹 笔记03 继承
继承伪类对象说明符原型函数化部件 继承 JS不是基于类的,而是基于原型的,这意味着对象直接从其他对象继承. 1 伪类 JS提供了一套丰富的代码重用模式,它可以模拟那些基于类的模式,因为JS实际上没有类 ...
- JavaScript语言精粹 笔记02 函数
函数函数对象函数字面量调用参数返回异常给类型增加方法递归作用域闭包回调模块级联套用记忆 函数 1 函数对象 在JS中函数就是对象.对象是“名/值”对的集合并拥有一个连接到原型对象的隐藏连接.对象字 ...
- JavaScript语言精粹 笔记01 语法 对象
内容比较简单,只是从头梳理一下JS的知识 语法空白标识符数字字符串语句 对象对象字面量检索更新引用原型反射枚举删除减少全局变量污染 语法 1 空白 空白可能表现为格式化字符或注释的形式.空白通常没有 ...
- 1.javascript语言精粹笔记
一.注释 /**/ // 采用这个 二.标识符 标识符被用于语句.变量.参数.属性名.运算符和标记三.数字 javascript只有一个单一的数字模型.它在内部被表示64位的浮点数. 没有分离出整形, ...
- javascript语言精粹-笔记
walkDOM function walkTheDOM(node, func) { func(node); node = node.firstChild; while (node) { walkThe ...
随机推荐
- POPTEST老李谈Debug和Release的区别(c#)2
二.哪些情况下 Release 版会出错 有了上面的介绍,我们再来逐个对照这些选项看看 Release 版错误是怎样产生的 1. Runtime Library: 2. 优化:这类错误主要有以下几种: ...
- 大数据测试之初识Hadoop
大数据测试之初识Hadoop POPTEST老李认为测试开发工程师是面向测试的开发,也就是说,写代码就是为完成测试任务服务的,写自动化测试(性能自动化,功能自动化,安全自动化,接口自动化等等)的cas ...
- 老李推荐:第2章4节《MonkeyRunner源码剖析》了解你的测试对象: NotePad窗口Activity之菜单简介
老李推荐:第2章4节<MonkeyRunner源码剖析>了解你的测试对象: NotePad窗口Activity之菜单简介 NotePad窗口Activity之菜单简介 这里我们总共用到 ...
- jQuery入门:认识jQuery
jQuery是一个轻量级的JavaScript库,拥有独特的选择器.出色的DOM操作.可靠的事件处理.完善的兼容性.链式操作以及方便的ajax等功能.jQuery的最新版本可在官方网站(http:// ...
- VC++6.0中不兼容问题
记得上次用VC++6.0已经是很长一段时间之前的事情了.这次由于需要学习计算机图形学,要开始学这写一些算法之类的,我又开始了VC++之旅. 重新安装一个vc++,我用的是Visual C++ 6.0( ...
- 数字图像处理(MATLAB版)学习笔记(2)——第2章 灰度变换与空间滤波
0.小叙闲言 1.本章整体结构 2.书中例子 例2.1 主要是使用函数imadjust,来熟悉一下灰度处理,体验一把 >> imread('myimage.jpg'); >> ...
- select下拉二级联动
function opt(){ var id = $("#ids").val(); $.ajax({ type: "POST", url: "$ ...
- iOS 关于定位你该注意的那些事
其实现在对于一个APP来说,定位用户的位置是件很容易的事情,有三种解决方案供您选择: (1)原生 (2)高德地图 (3)百度地图 1.解决方案的选择 其实单说iOS开发来说应用哪种方案都无所谓 ...
- SIP DB33标准笔记 监控图像获取
实时监控图像的获取: a) 实时监控图像的获取过程应包括获取实时流.释放实时流.应使用 RFC 3261 中定义的方法INVITE 获取一个摄像机的实时监控视频流. 取消没有完成的连接应采用 CANC ...
- FreeSWITCH 安装配置的 各种坑, 填坑
个人安装环境: OS:CentOS6.7 64位 FreeSWITCH Ver:1.6.17 一. 编译出错 安装 之前, 最好 先安装 这几个东西(如果有, 请忽略): yasm (有nasm的话 ...