现在大部分编译语言中都流行要求强类型。其原理在于强类型允许编译器在编译时检测错误。我们能越早检测和修复错误,付出的代价越小。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语言精粹】笔记摘要的更多相关文章

  1. JavaScript语言精粹笔记

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

  2. JavaScript 语言精粹笔记3

    方法 毒瘤 糟粕 记录一下阅读蝴蝶书的笔记,本篇为书中最后一部分:方法.代码风格.优美的特性.毒瘤.糟粕等. 方法 这一章主要介绍了一些方法集.这里写几个我不太熟悉的方法和要点吧. array.joi ...

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

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

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

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

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

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

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

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

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

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

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

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

  9. 1.javascript语言精粹笔记

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

  10. javascript语言精粹-笔记

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

随机推荐

  1. 提高 webpack 构建 Vue 项目的速度

    前言 最近有人给我的 Vue2 后台管理系统解决方案 提了 issue ,说执行 npm run build 构建项目的时候极其慢,然后就引起我的注意了.在项目中,引入了比较多的第三方库,导致项目大, ...

  2. 【HTML5】选项卡

    效果图: HTML: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> ...

  3. Win10专业版下图片拖到PS无法打开的解决技巧

    PS这个软件是用户最常用的软件之一,其强大的图形处理能力毋庸置疑.有用户表示在Win10专业版系统中使用PS发现图片不能直接拖动到PS中打开,这个问题本身不是特别大的问题,但这一小小的毛病会打破用户习 ...

  4. 在jsp中用一数组存储了数据库表中某一字段的值,然后在页面中输出其中的值。

    List<String> list = new ArrayList<String>();  String sql = "select userName from us ...

  5. windows升级到1607后操作很卡顿的解决办法

    CPU I5,固态128G,win7主系统,WIN10和WIN7都安装在固态硬盘上. 未升级之前,操作很流畅,以至于把家里的老古董电脑也换固态,系统换WIN10了.自从升级了1607后这个问题就出现了 ...

  6. 1020. Tree Traversals

    Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and i ...

  7. 生成订单:三个表(Products,Orders,OrderItem)

    1.有三个表(Product上,Orders,OrderItem) 分别创建对应的三个实体类 OrderItem中有外键Order_id 参考Orders中的id :Product_id参考Produ ...

  8. openMP编程(上篇)之指令和锁

    openMP简介 openMP是一个编译器指令和库函数的集合,主要是为共享式存储计算机上的并行程序设计使用的. 当计算机升级到多核时,程序中创建的线程数量需要随CPU核数变化,如在CPU核数超过线程数 ...

  9. 有关 json对象 取出其中数据问题

    这几天,在做一个ajax异步提交的小功能,发现从ashx中传递过来的string 类型的数据,一直拿不到(当时是指的是json点不出来),傻傻的自己,一直在找其他的方法,看看其他那里出了错误,最后,那 ...

  10. Java泛型知识点:泛型类、泛型接口和泛型方法

    有许多原因促成了泛型的出现,而最引人注意的一个原因,就是为了创建容器类. 泛型类 容器类应该算得上最具重用性的类库之一.先来看一个没有泛型的情况下的容器类如何定义: public class Cont ...