《JavaScript语言精粹》笔记

1.下面的值被当作假(false)
false
null
undefined
空字符串 ' '
数字 0
数字 NaN
2.如果你尝试检索一个并不存在的成员属性的值,降返回undefined, ||运算符可以用来填充默认值
var status = flight.status || 'unknown'
3.尝试从undefined的成员属性中取值会导致TypeError异常,这时可以通过&&运算符来避免错误
flight.equipment && flight.equipment.model
4.原型

原型连接在更新时时不起作用的。当我们对某个对象做出改变时不会触及改对象的原型。
原型只有在检索值时候才被用到,如果我们尝试去获得对象的某个属性值。但该对象没有此属性名,那么Javascript会试着从原型对象中获取属性值。如果那个原型对象也没有该属性,那么再从它的原型中寻找,以此类推,直到该过程最后到达终点
object.prototype。如果想要的属性完全不存在于原型链中,那么结果就是undefined值,这个过程称为委托。
原型关系是一种动态的关系,如果我们添加一个新的属性到原型中,该属性会基于该原型创建的对象可见。
stooge.professin=’actor’;
anther_stooge.profession //’actor’

5.hasOwnProperty方法不会检查原型链
6.delete不会触及原型链中的任何对象。删除对象的属性可能会让来自原型链中的属性透现出来:
another_stooge.nickname // 'Moe'
// 删除 anther_stooge的nickname属性,从而暴露出原型的nickname
delete another_stooge.nickname;
another_stooge.nickname // 'Curly'
7.所谓编程就是将一组需求分解成一组函数与数据结构的技能。
8.函数对象

每个函数在创建时会附加两个隐藏属性:函数的上下文和实现函数行为的代码。
每个函数对象在创建时也随配有一个prototype属性。它的值是一个拥有constructor属性且值即为该函数的对象。这和隐藏连接到Function.prototype完全不同。

9.函数字面量

通过函数字面量创建的函数对象包含一个连接到外部上下文的连接。这被称为闭包(closure)。

10.调用

每个函数除了声明时定义的形式参数,每个函数还接收两个附加的参数:this和arguments。参数this的值取决于调用的模式。在JavaScript中有4种调用模式:

方法调用模式
函数调用模式
构造器调用模式
apply调用模式
11.函数调用模式

当一个函数并非一个对象的属性时,那么它就是被当做一个函数来调用的:
var sum = add(3, 4)
以此模式调用函数时,this被绑定到全局对象。这是语言设计上的一个错误。倘若语言设计正确,那么当内部函数被调用时,this应该扔然绑定到外部函数的this变量。这个设计错误的后果就是方法不能利用内部函数来帮助它工作,因为内部函数的this被绑定了错误的值,所以不能共享该方法对对象的访问权。幸运的是,有一个很容易的解决方案:如果该方法定义一个变量并给它赋值为this,那么内部函数就可以通过那个变量访问到this。按照约定,我把那个变量命名为that:

// 给myObject增加一个double方法
  myObject.double = function () {
    var that = this; // 解决方法
    var helper = function() {
        that.value = add(that.value, that.value)
     }
     helper(); //以函数的形式调用helper。 
   };
   // 以方法的形式调用double
  myObject.double();
  document.writeln(myObject.value); // 6 
12.apply调用模式

不是太明白

13.参数

arguments并不是一个真正的数组。它只是一个“类似数组(array-like)”的对象。argumengs拥有一个length属性,但它没有任何数组的方法。

14.返回

一个函数总是会返回一个值,如果没有指定返回值,则返回undefined。如果函数调用时在前面加上了new前缀,且返回值不是一个对象,则返回this(该新对象)

15.闭包

函数可以访问它被创建时所处的上下文环境,这被称为闭包。

16.级联

让方法返回this而不是undefined,就可以启用级联。

17.柯里化(哪些场景会用到呢?)

柯里化允许我们把函数与传递给的参数相结合,产生出一个新的函数。
把多参数函数转换为一些列单参数函数并进行调用的技术

17.记忆

函数可以将先前操作的结果记录在某个对象里,从而避免无谓的重复运算,这种优化被称为记忆。记忆是主要用于加速程序计算的一种优化技术,它使得函数避免重复演算之前已被处理输入,而返回已缓存的结果

18.继承(待继续研究)
20.数组

设置更大的length不会给数组分配更多的空间。而把length设小将导致所有下标大于等于新length的属性被删除

21.正则表达式(待继续研究)

可处理正则表达式的方法有

regexp.exec
regexp.test
string.match
string.replace
string.search
string.split
22.方法
Array
array.concat(item...)
array.join(separator)
array.pop()
array.push(item...)
array.reverse()
array.shift()
array.slice(start, end)
array.sort(comparefn)
array.splice(start, deleteCount,item...)
array.unshift(item...)

Function

function.apply(this.Arg, argArray)

Number

number.toExponential(fractionDigits)
number.toFixed(fractionDigits)
number.toPrecision(precision)
number.toString(radix)

Object

object.hasOwnProperty(name)

RegExp

regexp.exec(string)
regexp.test(string)

String

string.charAt(pos)
string.charCodeAt(pos)
string.concat(string...)
string.indexOf(searchString, position)
string.lastIndexOf(searchString, position)
string.localeCompare(that)
string.match(regexp)
string.replace(searchValue, replaceValue)
string.search(regexp)
string.slice(start, end)
string.split(separator, limit)
string.substring(start, end)
string.toLocaleLowerCase()
string.toLocaleUpperCase()
string.toLowerCase()
string.toUpperCase()
String.fromCharCode(char...)
21.优美的特性

函数式顶级对象
给予原型继承的动态对象
对象字面量和数组字面量

21.毒瘤

全局变量。全局变量在所有作用域中都是可见的变量。
作用域。有函数作用域,没有块级作用域。
自动插入分号。
typeof null 返回‘object’。
parseInt最好加上基数,parseInt('08')和parseInt('09')返回0。
0.1+0.2不等于0.3。
typeof NaN === 'number' // true。
伪数组

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351

推荐阅读更多精彩内容