你可能不知道的JavaScript

上传人:我*** 文档编号:136916689 上传时间:2020-07-03 格式:PPT 页数:59 大小:523.50KB
返回 下载 相关 举报
你可能不知道的JavaScript_第1页
第1页 / 共59页
你可能不知道的JavaScript_第2页
第2页 / 共59页
你可能不知道的JavaScript_第3页
第3页 / 共59页
你可能不知道的JavaScript_第4页
第4页 / 共59页
你可能不知道的JavaScript_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《你可能不知道的JavaScript》由会员分享,可在线阅读,更多相关《你可能不知道的JavaScript(59页珍藏版)》请在金锄头文库上搜索。

1、你可能不知道的JavaScript,党会建powerbyJavaScript启示录JavaScript语言精粹,你可能不知道的JavaScript,第一章、基本类型第二章、对象和数组第三章、函数、作用域和闭包第四章、prototype和继承第五章、高性能,第一章、基本类型:原始值和复杂值,1、9个原生的对象构造函数:NumberStringBooleanObjectFunctionArrayDateRegexpError2、5个原始值:数字,字符,布尔,null,undefined。原始值是作为不可细化的值,进行存储和操作的。他们是不可变的。3、复杂值除了原始值外的那些对象,是可变的键控(ke

2、yedcollections)集合.,第一章、基本类型:原始值的引用和存储,原始值(StringNumberBoolean)在被用作对象时,就像对象。原始值使用toString方式,一旦调用或者返回该方法时,对象就会转变成原始值。,第一章、基本类型:原始值的比较,=和=什么区别?当时同一个类型时,没有区别。如果不是同一个类型,会进行隐式强制类型转换。=0/false0=/true0=0/true使用=,NumberStringBoolean不加new直接执行,返回原始值,第一章、基本类型:复杂值的引用和存储,vara=aa:1;varfunc=function(num)num.aa=2cons

3、ole.log(a);/Objectaa:2func(a);,vara=aa:1;varfunc=function(num)num=bb:1console.log(a);func(a);/Objectaa:1,赋值是靠等号,复杂值(对象)靠引用传递。如果单独赋值,相当于局部变量。,第一章、基本类型:复杂值的引用和存储,vara=aa:1;varfunc=function(num)num=bb:2console.log(num);Objectbb:2console.log(a);Objectaa:1func(a);,vara=1,2,3;varb=function(array)array.pus

4、h(4);console.log(array);/1,2,3,4b(a);console.log(a)/1,2,3,4,赋值是靠等号,单独赋值相当于重新建了一个变量,跟原来引用的值没有关系了,第一章、基本类型:假值和undefined,关于boolean类型,记住假值,其他都是true就行了。假值:0,-0,null,undefined,false,NaN(非数字),空字符串。真值:其他任何值都是true,包括newBoolean(false),vara=newBoolean(false);if(a)console.log(a)BooleanPrimitiveValue:false,只允许js

5、本身告诉你,这个值是undefined,有东西丢了。如果指定一个对象或者变量等不可以使用,应该使用null,vara=null;console.log(null=undefined)true,第一章、基本类型:原始值的字面量,访问属性时原始值/字面量被转换成对象console.log(1234).toString();console.log(1234toString();console.log(1234.toString();使用原始值/字面量编写更快速,字面量的形式更简洁实例执行valueOf函数就是字面量,vara=newString(qqq);console.log(a.valueOf(

6、);console.log(typeofa.valueOf();,第一章、基本类型,原始值(值类型)1:基本类型是值类型,可以用typeof判断,2:占用空间固定保存在栈中3:保存与复制的是值本身复杂值(引用类型)1:使用new方法创建的对象,使用instanceof判断类型2:占用空间不固定,保存在堆中3:保存与复制的是指向对象的指针。js中一共5个原始值,6个typeof能判断的,9个原生的内置的构造函数。,第一章、基本类型:typeof,typeof能判断:数字字符布尔objectfunctionundefined。注意null和数组,tyopeof都输出object。,typeofNu

7、mbertypeofnewNumber,vara=function()varc=;varb=Object.prototype.toString.apply(c);console.log(b);a();/输出objectArray,第一章、基本类型:typeof,vartoString=Object.prototype.toString;varisArray=function(val)returntoString.call(val)=objectArrayvarisFunction=function(val)returntoString.call(val)=objectFunction,第一章、

8、基本类型:instanceof,varFoo=function()Foo.prototype=constructor:FoovarFooInstance=newFoo;FooInstance._proto_=Foo.prototype;/trueFooInstance.constructor=Foo;/true,varFoo=function();Foo.prototype=;varFooInstance=;FooInstance._proto_=Foo.prototype;console.log(FooInstanceinstanceofFoo);/true,instanceof判断不是依据

9、constructor,而是依据原型链,第一章、基本类型:instanceof,实例的constructor属性指向的是构造函数实例通过构造函数的prototype来继承到属性包括constructor,你可能不知道的JavaScript,第二章对象和数组,第二章:对象和数组:对象,对象为王;对象是key-value的集合,varmyObject=newObject();myObject0=f;myObject1=o;console.log(myObject);Object0:f,1:o,varmyObject=newString(fo);console.log(myObject);Strin

10、g0:f,1:o,length:2,PrimitiveValue:fo,第二章、对象和数组:对象字面量,vara=aa:1,bb:2;json的表示方法,属性名永远都是字符串类型,可以不用引号。点表示方法,用于获取、更新、设置对象的属性都很方便,默认都是字符串,不需要引号。括号表示法,属性名称在括号内,如果具体的属性名称需要用引号,如果不指定引号,则是变量。,varmyObject=123:aa,class:bb;console.log(myObject.123)UncaughtSyntaxError:UnexpectedstringvarmyObject=123:aa,class:bb;co

11、nsole.log(myObject123)/aavarmyObject=123:aa,class:bb;console.log(myObject123+,+myObjectclass)/aabb,第二章、对象和数组:对象字面量,varstooge=first-name:dang,last-name:huijian;varstooge=first-name:dang,last-name:huijian;/错误,标准26个字母,数字和布尔,在字面量中点表示法直接用于key,不用引号中括号表示法,如果不加引号代表的是变量,第二章、对象和数组:hasOwnProperty,varaaa=a:123,

12、b:456varBBB=function();BBB.prototype=aaa;BBB.prototype.c=789;varbbb=newBBB();bbb.foo=123;console.log(bbb);for(variinbbb)if(bbb.hasOwnProperty(i)console.log(i);console.log(bbbi);,如果是对象本地属性就是true,第二章、对象和数组:forin,vara=newString(1111);for(variina)console.log(i);console.log(ai);,第二章、对象和数组:forin,forin循环仅能

13、遍历可枚举的属性,即在遍历对象时可用的属性,典型地,预定义的属性不是可列举的,而用户定义的属性总是可列举的。,Object.prototype.bb=2;console.log(Object.prototypebb);/2vara=aa:1for(variina)console.log(ai);/12,Object.prototype=bb:2;/破坏Object会被屏蔽掉console.log(Object.prototype.bb)/undefinedfor(varjinObject.prototype)console.log(Object.prototypej)/什么都没有输出,vara

14、=Object.prototype=bb:2;console.log(a.bb),第二章、对象和数组:对象的key,vara=;a1=a;a1=1;a1=aa;ab=2;a1:2=3;console.log(a);for(variina)console.log(i);console.log(typeofi);console.log(i.length);,Object1:1,1:aa,b:2,objectObject:31/会把第一个没有加“”的覆盖string11string3/单引号算长度了bstring1objectObject/将那个对象,调用了toString的方法string15,第

15、二章、对象和数组:数组,数组与对象一样,他的下标也是字符串。,vara=1,2,3for(variina)console.log(typeofi)/string,Array()仅仅是一种特殊类型的Object()。仅仅是他的实例,有额外功能的Object()实例。增加了一些属性和方法,vara=newArray(1,2,3);varb=newArray(5);/一个参数就是长度console.log(a0,a.length);console.log(b0,b.length);13undefined5,第二章、对象和数组:数组的length,length属性的值就是这个数组的最大整数属性加1,v

16、armyArray=;myArray1000=1;console.log(myArray.length);/1001,把length设置设大,不会分配更多空间;length设小,会删除值,第二章:对象和数组:对象和数组如何使用规则,当属性名是小而连续整数的时候使用数组,否则是对象,vartoString=Object.prototype.toString;varisArray=function(val)returntoString.call(val)=objectArray,如何判断是数组还是对象:,vara=a,b,c;varb=1:a,2:b,3:c;,第二章:对象和数组:数组的魅力,他自身的方法:,会更改原来的的数组:push、unshift,返回length。增加值得就返回lengthpop,shift删除的值,返回删除的那个该元素,本身变成删除后的值reverse反转数组顺序,返回该元素,并且该元素也改变splice(start,deleteCount,add

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号