1.JS中的是是非非 JS是一门计算机编程语言,是一门动态语言也称为脚本语言,是解析型编程语言。为什么是脚本?因为他本身不能执行,就是没有main函数或主程序的入口,必须被他的宿主环境,也就是解析环境解析执行他。为是什么是解析型?因为JS不会进行编程,链接,汇编等一系统的过程生成某个文件,再执行,他就是以字符串形式加载执行.. 2.JS中的真真假假 空,null,undefined,false,0,””,"",NaN都为假,其他都为真 3.函数,类,对象,构造器有什么区别? 答:在js中函数,类,对象,构造器可以说是没有任何区别的,我们可以说函数既为对象,对象既为类,类既为构造器。但一般情况下,我们称对象为那个类的实例,这是为了减少混乱。 复制代码 代码如下: function Person(){ } var person = new Person(); //Person我们可以称为函数,类,对象,构造器(不带参数) //person称为对象的引用
这也行,但为什么还要new 的过程,全都这样绑定不就可以了吗?思考 6.prototype和constructor的在JS框架中的影响 prototype为原型,是一个对象。,。 constructor为构造器,是一个函数 到现在为止,你要分清楚,什么时候的对象为对象,什么时候的对象是一个函数.也难为JS解析器,能解析运行如此灵活的代码。 prototype可以说他是一个类的静态的属性,他指向这个对象的实例。换句话说prototype是一个对象。prototype指向的对象和我们new的对象有何区别?建立了一种等价桥梁关系,但不是同一个。当我们在函数prototype上绑定属性的时候,那么属性和值就绑定到了prototype对象上,并没有正真的绑定到那个对象上去。当需要访问那个对象上的这个属性的时候,JS解析器,首先会去从对象本身上去找这个属性,然后再到原型对象上找。 复制代码 代码如下: function Person(){ } var person = new Person(); person.name=”张三”; Person.prototype.name=”李四”; alert(person.name); delete person.name; alert(person.name);
constructor指向一个对象的构造器。(什么是构造器?自己去复习。),由此可以看出他是一个对象级别的属性。也就是要使用constructor这个属性,必须需要一个对象。 那么prototype是一个对象有没有constructor属性?当然有,既然constructor是指构造器,那有没有一个prototype属性?当然有,以此类推,下面这两段代码是正确的. constructor.prototype.constructor.prototype.constructor…… prototype.constructor.prototype.constructor.prototype…… 其实我也不知道到底可以连多长?感兴趣可以试一下。顺便告诉你用递归算法。 在众多的JS代码中,当我们已知一个对象,要求他的构造器,或者已知一个构造器,求他的对象。应入门了。 7.==和===将判断进行到底. ==和===神像形不象.不要去考虑,一眼就看出是做断判是否相等。 有木有区别? ==判断变量是否相等。 ===判断变量的值相等。 以此类推:====用来干嘛的??用来报错的.你懂的.这里只想告诉你,只有==和=== JS中变量是弱类型的,都懂。 复制代码 代码如下: var a=3; var b=”3”; alert(a==b); JS中变量的值是强类型的。你懂的. var a =3; var b =”3”; alert(a===b);