JavaScript小笔记

来源:互联网 发布:sql语句增删改查实例 编辑:程序博客网 时间:2024/06/05 06:35

1.for-in语句

for (变量 in 对象)
{
在此执行代码
}
建议在使用该语句前检查确认该对象的值不是null或undefined.(ES5之前的会抛出错误,ES5则不执行该语句)

2.label:statement与for循环联用

outermost:for() {    for(){        if ()            break outermost;//continue outermost;    }}//连续跳出两重循环,建议使用时不要嵌套过多循环,尽量使用描述性的标签(label)

3.理解函数参数

可以通过arguments对象来访问参数数组
arguments的值会自动反映到对应的命名参数,反过来不成立。
参数传递的都是值,没有引用,只不过这个值可能是某个地址
严格模式下修改arguments的值会导致语法错误!
没有函数重载,后定义的将覆盖前定义的。因为函数名相当一个指针,后面指向的会覆盖前面。
函数声明会率先读取,函数表达式要执行到该处代码才会执行。

4.javaScript没有块级作用域

要在有局部作用域的变量范围内找到同名的全局作用域变量使用window.变量名

5.函数内部属性

arguments.callee()相当于调用原函数
this引用的是函数据以执行的环境对象
函数名.caller保存调用当前函数的函数的引用

6.函数属性和方法

length属性返回参数的名称
apply()和call()方法

7.迷宫实现总结

相邻的border边界是不会合并的
var temp = document.getElementsByClassName(“block”);
有元素的class属性改变了,temp也会改变,不保证指向原来的那个元素

8.apply()的参数为空时,默认调用全局对象。

var x = 0;  function test(){    alert(this.x);  }  var o={};  o.x = 1;  o.m = test;  o.m.apply(); //0

9.对象

以工厂模式创建对象无法知道对象的类型,以构造函数的模式则可以

alert(person1 instanceof Object)alert(person1 instanceof Person)

构造函数如果重复调用来创建对象则其中的函数会反复定义,因此可以将其写在函数外面,但这样就多了很多全局函数,没有封装性可言!所以要使用原型。

Person.prototype.name="ha"Person.prototype = {    construct:Person}//construct属性改变了,不重新定义的话指向object构造函数。
alert(Person.prototype.isPrototypeOf(person1));//truealert(Object.getPrototypeOf(Person1)==Person.prototype);//truealert(person1.hasOwnProperty("name"));//当属性存在实例中返回true;
Object.keys(p1);//只取得实例属性Object.getOwnPropertyNames(Person.prototype);//取得所有实例属性,包括不可枚举的

原型具有动态性,修改原型会作用到已经创建的实例,因为是指针指向。但是重写原型则不会,切断了现有原型与任何之前已经存在对象实例之间的联系。

10创建对象模式

动态原型模式:将原型放于构造函数当中,用if判断是否创建了原型
寄生构造函数模式:与工厂模式类似,只是用了new操作符。通过创建原生对象然后再增加方法的方式来创建对象。
稳妥构造函数模式(最适合在安全的环境中,禁止使用this和new):与寄生构造函数类似,不引用this也不适用new.

11原型链

问题:原先的实例属性变成了现在的原型属性,会被所有的实例共享!同时难以向超类型的构造函数中传递参数。

12.使用递归函数时用arguments.callee更保险

13闭包

执行环境中定义的所有变量和函数都保存在这个一个变量对象上。如果执行环境是环境,则将其活动对象作为变量对象。
匿名函数的执行环境具有全局性

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 2020年不脱贫的农户怎么办 马自达8停产后配件怎么办 钢铁雄心3没将领怎么办 江苏低于二本线怎么办 电工证快过期了怎么办 天正建筑打不开高版本的图纸怎么办 打开天正只显示cad怎么办 天正软件显示过期了怎么办 四岁宝宝经常吐怎么办 穿越火线登陆不上去怎么办 猫猫呕吐带血怎么办 狗又吐又拉稀怎么办 狗狗肠炎拉血怎么办 拉大便有血怎么办呢 工作中遇到不公待遇怎么办 老兵丢了退伍证怎么办 我的退伍证丢了怎么办 退伍证丢了怎么办啊 银行卡更换之前的卡号怎么办 收到联通欠费催款律师函怎么办 苹果5s玩王者卡怎么办 电信宽带包年用户欠费怎么办 员工不处理考勤异常怎么办 移动号码特殊原因强制停机怎么办 下雨天我怎么办我好想你 免检标志领晚了怎么办 激光点太田痣揉搓了泛红怎么办 花束与衣服颜色相称怎么办 吃鸡狙击枪距离怎么办 环世界敌人炸墙怎么办 水阀断在墙里面怎么办 内陷螺丝扣秃了怎么办 五菱仪表盘不亮怎么办 瞒着老婆欠了钱怎么办 m8螺丝牙距孔距差一个毫米怎么办 内丝弯头坏了怎么办 螺纹底孔打大了怎么办 内螺纹止规过了怎么办 牌照螺丝装错了怎么办 帽式扳手大了怎么办 内六角扳手小了怎么办