对象的比较均是引用的比较。(不可变的原始值和可变的对象引用)
this返回调用这个方法的对象
通过x!==x来判断x是否为NaN
var max = max_width || preferences.max_width || 500;
function copy(o,p){
p = p || {};
}

对于p和q取任意值,这两个等式都永远成立
!(p && q) === !p || !q;
!(p || q) === !p && !q;

a op= b;
a = a op b;
第一行中,表达式a计算了一次,第二行中,表达式计算了两次。

var a=[1,2,3];
delete a[2];
2 in a; //=>false;
a.length; //=>3;注意,数组长度并没有改变,尽管上一行代码删除了这个元素,但删除操作留下了一个“洞”,实际上并没有修改数组长度,因此a数组长度仍然是3。

switch语句贴切的运用场景
funciton convert(x){
switch(typeof x){
case 'number':
return x.toString(16);
case 'string':
return '"'+x+'"';
default:
return String(x);
}
}

javascript中有4中循环语句:while、do/wihle、for、for/in
for(variable in object){
statement
}

for/in 遍历对象全部属性
function getvalue(portfolio){
var total = 0.0;
for(stock in portfolio){
var shares = portfolio[stock];
var price = getquote(stock);
total += shares * prise;
}
return total;
}

throw语句
function factorial(x){
if(x<0) throw new Error("x不能是负数");
for(var f = 1; x > 1; f *= x, x--){
return f;
}
}

try/cacth/finally
try{
var n = Number(prompt("请输入一个正数",""));
var f = factorial(n); //上一个throw例子中的代码函数
alert(n + "| = " + f);
}catch (ex){
alert(ex);
}

如果方法中使用了eval()函数,那么javascript解释器将不会对这个方法做任何代码优化。

对象是可变的,我们通过引用而非值来操作对象。

继承:假设要查询对象o的属性x,如果o中不存在x,那么将会继续在o的原型中查询属性相。如果原型对象中也没有x,但这个原型对象也有原型,那么继续在这个原型对象的原型上执行查询,知道找到x或者查找到x或者查找到一个原型是null的对象为止。可以看到,对象的原型属性构成了一个“链”,通过这个“链”可以实现属性的继承。

对象检测属性:可以通过in运算符、hasOwnProperty()和propertyIsEnumerable()方法来完成这个工作。

for/in 过滤原型继承属性和方法属性:
for(p in o) {
if(!o.hasOwnProperty(p)) continue;
}
for(p in o) {
if(typeof o[p] ==== "function") continue;
}

ECMAScript 5定义了两个可以用于枚举属性名称你的函数:
Object.keys();(返回对象可枚举的自有属性的名称的数组)
Object.getOwnPropertyNames();(它返回对象所有的自由属性名称,而不仅仅是可枚举的属性)

function inherit(o){
if(o.typeof !=="object") return;
var p = {};
p.proptype = o;
return p;
}

函数与方法:
函数就是这样一段JavaScript代码,它只定义一次,但可能被执行或调用多次。如果函数挂载在一个对象上,作为对象的一个属性,就称它为对象的方法。(没有返回值的函数有时候称为过程)

可变参数
function max(/* ... */){
var max=Number.NEGATIVE_INFINITY;
for(var i=0;i<arguments.length;i++){
if(arguments[i] > max) max = arguments[i];
}
return max;
}
类似这种函数可以接收任意个数的参数,这种函数也称为“不定实参函数”,这个术语源自古老的C语言。
注意,不定实参函数的实参个数不能为零。

闭包:
函数体内部的变量都可以保存在函数作用域内,这种特性在计算机科学文献中称为“闭包”。

[JavaScript权威指南 [笔记]的更多相关文章

  1. javascript权威指南笔记

    最近每天工作之余看下js的细节部分,时间不是很多,所以看的进度也不会太快,写个博客监督自己每天都看下. 以前不知道的细节或者以前知道但是没注意过的地方都会记录下来,所以适合有一定基础的,不适合零基础新 ...

  2. javascript权威指南笔记--javascript语言核心(四)

    对象: 通过引用(而非值)来操作对象: var obj = {"x":1,"y":2}; var copyObj = obj; copyObj.x = 5; c ...

  3. javascript权威指南笔记--javascript语言核心(三)

    1.var用来声明一个或多个变量.全局变量是全局对象的属性,它无法通过delete删除. 如果var语句中的变量没有指定初始化表达式,那么这个变量的初始值为undefined. 变量声明语句会被提前到 ...

  4. javascript权威指南笔记--javascript语言核心(二)

    1.函数作用域:在函数内声明的所有变量在函数体内始终是可见的.这意味着在变量声明之前甚至已经可用. *“声明提前”:javascript函数里声明的所有变量(但不涉及赋值)都被提前至函数的顶部. fu ...

  5. javascript权威指南笔记--javascript语言核心(一)

    1.javascript的数据类型分为两类:原始类型和对象类型. 原始类型包括字符串.数字.布尔值.null.undefined. 对象是属性的集合,每个对象都由“名/值”对构成.数组和函数是特殊的对 ...

  6. 3.类型、值和变量-JavaScript权威指南笔记

    开始变得有意思起来了,然而第三章还是以基础知识了解的角度阐释相关的概念,并没有深入到结合代码以及要实现的功能讲用法和原理的程度. 1.概论. value:程序的运行是对值的操作. type:能够表示并 ...

  7. 2.词法结构-JavaScript权威指南笔记

    今天是第二章.所谓词法结构(lexical structure),就是写代码中最基本的东西,变量命名,注释,语句分隔等,这是抄书抄的... 1.字符集,必须是Unicode,反正Unicode是ASC ...

  8. 1.语言概述-JavaScript权威指南笔记

    上周三的时候交给老板目前的项目第一个迭代回顾会的总结.原本是以综述性的表述方式写的,交给他之后表示程序员不要长篇大论.总结要分为优点缺点期望等等块,每块列出条目,简明扼要的表达出来.这里也用这种风格. ...

  9. javascript权威指南笔记[1-5]

    1.javaScript的数据类型分为两类:原始类型和对象类型: 2.javaScript中除了数字,字符串,布尔值,null,undefined之外就是对象了: 3.对象(object)是属性(pr ...

随机推荐

  1. bootstarp modal自己主动调整宽度的JS代码

    $('#ajaxPage').modal('show').css({ width: 'auto', 'margin-left': function () { return -($(this).widt ...

  2. ODPS 下一个map / reduce 准备

    阿里接到一个电话说练习和比赛智能二选一, 真的很伤心, 练习之前积极老龄化的权利. 要总结ODPS下一个 写map / reduce 并进行购买预测过程. 首先这里的hadoop输入输出都是表的形式, ...

  3. 构建安全的Xml Web Service系列之wse之证书存储位置

    原文:构建安全的Xml Web Service系列之wse之证书存储位置 我们在前几天对xml web service的安全性提出了一些建议,大家可以通过以下地址访问: 构建安全的Xml Web Se ...

  4. Libgdx Box2D现实------这缓释微丸(一个:项目介绍)

    它花了两个星期的假写物理游戏,在几次课逃逸,是大学,因为大部分时间点!今天,我基本上一直每节课的点1-3有时它,哎,这似乎是不再逃跑.不知道值没有值得,仅仅是简单地想做自己喜欢的事情,而不是跟老师大眼 ...

  5. Myeclipse 10/2014 配置插件(svn、maven、properties、velocity)方法

    一.构造SVN具体说明 什么是SVN? 管理软件开发过程中的版本控制工具. 以下会以两种方式来介绍怎么安装svn,myeclipse安装SVN插件步骤.以myeclipse 2014为例,第一种是最常 ...

  6. axWindowsMediaPlayer1获取音频长度

    OpenFileDialog openFileDialog1 = new OpenFileDialog { InitialDirectory = "c:\\", Filter = ...

  7. ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl 后篇 --事件冒泡

    原文:ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl 后篇 --事件冒泡 CompositeControl  后篇 --事件冒泡 系列文章链接: ASP.NET ...

  8. EasyUI实战经验总结(转)

    最近公司培训EasyUI,就做下总结吧,给有需要的人,源码在文章最后. 1.最常用的表格 ? 1 2 3 <div class="easyui-panel" data-opt ...

  9. js比量undefined种类

    js比量undefined种类 if (reValue== undefined) {     alert("undefined"); } 发现推断不出来.最后查了下资料要用type ...

  10. 程序猿常识--OJ系统和ACM测试考试大全

    OJ它是Online Judge缩写系统,来在线检測程序源码的正确性. 著名的OJ有RQNOJ.URAL等. 国内著名的题库有北京大学题库.浙江大学题库等. 国外的题库包含乌拉尔大学.瓦拉杜利德大学题 ...