博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[JavaScript权威指南 [笔记]
阅读量:5245 次
发布时间:2019-06-14

本文共 2171 字,大约阅读时间需要 7 分钟。

对象的比较均是引用的比较。(不可变的原始值和可变的对象引用)

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语言。
注意,不定实参函数的实参个数不能为零。

闭包:

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

转载于:https://www.cnblogs.com/vvonline/p/4847328.html

你可能感兴趣的文章
Factory Design Pattern
查看>>
python中贪婪与非贪婪
查看>>
guava API整理
查看>>
无锁编程笔记
查看>>
jquery mobile
查看>>
如何在vue单页应用中使用百度地图
查看>>
Springboot使用步骤
查看>>
Spring属性注入
查看>>
Springboot-配置文件
查看>>
Springboot-日志框架
查看>>
P1192-台阶问题
查看>>
一、使用pip安装Python包
查看>>
spring与quartz整合
查看>>
Kattis之旅——Eight Queens
查看>>
3.PHP 教程_PHP 语法
查看>>
Duilib扩展《01》— 双击、右键消息扩展
查看>>
利用Fiddler拦截接口请求并篡改数据
查看>>
python习题:unittest参数化-数据从文件或excel中读取
查看>>
在工程中要加入新的错误弹出方法
查看>>
PS 滤镜— — sparkle 效果
查看>>