JavaSctipt高级程序 前5章左右

作者: RGXMG | 来源:发表于2017-09-06 22:21 被阅读0次

第二章:小结

  1. 在使用JavaScript外部脚步时,src属性可以链接到外部文件,也可以链接到外部域的文件。
<javascript src="路径" type="text/javascript"></javascript>
  1. 元素会按照默认的方式进行,前提是不使用defer和async属性情况下,
  1. defer=”defer”属性将延迟到浏览器遇到之后才会执行,但是支持html5标准的浏览器中,会忽略这个属性,所以把延迟脚本放在页面底部是最佳选择。

  2. async src=”example.js” 属性目的是为了不让页面等待脚本下载,而异步加载页面的其他内容,该属性脚本一定会在页面的load事件前执行。

  3. 一般应该把元素放在前面,目的是为了先加载页面,在执行脚本,防止出现空白页面的情况。

放在</body>之后
  1. Js的严格模式:
functiondoSomething(){

“use   strict”;//开启严格模式的代码

//函数体

}

开启严格模式之后,ECMAScript一些不确定和规范的操作将会得到处理

如果有意的忽略var的操作符,会由于相应变量不会马上就有定义而导致不必要的混乱。在未经声明的变量赋值在严格模式下会抛出ReferenceError的错误。

  1. Typeof(操作符)用于检测给定变量的数据类型,undefind,boolean,string,number,boject,function,实例:
alert(typeof 95);--------//number

第四章:变量、作用域和内存问题

  1. 赋值变量值:当从一个变量复制基本数据类型值时,俩个都拥有各自的独立内存,互不影响。而复制对象时,俩着都成为引用,则都指向一个保存在堆内存的对象。
var num1=3;
var num2=num1;
num1=4;
alert(num1);---//5;
alert(num2);---//3

var o1=new object();
var o2=o1;
o1.name=”hasname”;
alert(o2.name);---//hasname;
  1. 基本变量和对象引用变量作为函数参数传递时:基本变量复制成另一个内部函数变量,互不干扰。而对象引用变量给出引用,即多一个引用,俩者都指向一个对象。

  2. 局部作用域的对象不会在全局中变现出来,在局部建立的对象在函数结束时自动销毁。

  3. with(“object”)语句--将其添加到函数中,可以把object对象暂时引入到函数中,并将其添加到作用域的前端。在with执行环境中,能够创建变量和更改object对象的属性和变量。但是创建的变量是作为函数执行环境而言,是函数的局部变量,不能够作为object对象的变量或者属性。在结束with语句之后,该引用就会被销毁,重新按执行环境执行。

  4. 没有块级作用域:在js中,在if语句或者for语句等语句中定义的变量在语句执行完成之后不会被销毁。因为它是作为当前整个执行环境的变量(局部或者全局);

eg:for(vari=0;i<10;i++){

alert(i);

var a=”I am a”;

}

alert(i);alert(a);--//依然有效

第六章:引用类型:

  1. 创建对象的引用,对象字面量定义:
var object1=new object();

var object2={name:”name1”,age:29}; //以逗号隔开,最后一个无符号

varobject3={“name”:”name”,”age”:29};

varobject4={};object4.name=”name”;object4.age=29;

以上创建方法等价!!!

  1. 利用对象面量语法传递大量可选参数:
eg:function display(object){

if(type ofobject.name=”string”)alert(object.name+”string类型的name”);

if(type ofobject.age=”number”)alert(object.age+”number类型的age”);

}

display({

name:”thisname”,

age:20

});


display({

age:19

});
  1. Array中模拟类似于堆栈的堆内存(先进后出FILO):

push(任意多个内容)—将括号内的内容依次添加到数组末尾,pop()—取出数组末尾的数。
push()方法返回添加后的数组长度,pop()返回的是移除的末尾数组内容。

模拟队列方法(先进先出FIFO):shift()取出位于array中下标为0位的内容,?>即移除首位元素。

ECMAScript还提供unshift(任意多个内容)能够把任意内容插入到数组前,

顺序从左至右,依次插入。

4. 数组排序:

1.reverse()方法将数组中的项颠倒顺序。

2.sort()将数组中的每个项执行toString()方法,然后进行升序比较。Sort()方法中接受一个比较函数,如果比较函数返回一个负数,就证明比较函数中的第一个value应该位于第二个value之前。反之比较函数返回一个正数。相等返回0。

eg:var arr=[1,5,0,10,15];

sort(compare);

document.write();//15,10,5,1,0

fucntioncompare(value1,value2){

if(value1){

return 1;

}

Else fi(value1>value2){

Return-1;//返回-1:value1在value2的前面。

}

elsereturn 0;

}

function compare(value1,value2){

returnvalue1-value2;//数值比较(valueof方法返回为number),升序排列、

}

5.复制数组:

  1. concat(接受一个或多个任意项)该方法为数组引用对象的方法,能够复制当前数组并将接受的参数依次添加到创建的副本数组中。并返回该数组副本。

  2. slice(接受一个或者俩个数值)同为数组引用对象的方法,能够根据参数确定引用数组中项的位置,并将之提取出来,重新创建一个数组返回。

var arr=[0,1,2,5,7,9];

var arr2=arr.slice(0,3)//newarr[0,1,2];相当于是[0,3)

var arr2=arr.slice(2);//newarray[2,5,7,9];接受一个参数时,其后都选中。

var arr2=arr.slice(-3,-1);//newarray[5,7];如果出现负数,则将数组长度与之相加为位置。如果还是负数,则返回空数组。

3. splice(2个及以上数量的参数);

删除--俩个参数:第一个参数指定位置,第二个指定删除个数。array.splice(0,2);删除前俩项。

插入--3个参数或以上:第一二参数同上,第三个及以后参数为插入项。array.splice(1,0,”red”,”green”);从第二项开始插入red和green项。

替换—3个参数或以上:第一二参数同上,第三个及以后参数为替换项。array.splice(1,1,”grey”);删除第二项,并将之替换为grey。

splice方始终会返回一个数组,该数组包含splice方法删除的项(如果没有删除任何项,则返回一个空的数组)

上述原理为:不删除,为插入,删除即为替换。
  1. 定位查找数组项:indexOf(查找的,,查找起点位置(可选))顺序查找。

lastindexOf(查找的项,查找起点位置(可选))末尾开始向前查找。也从末尾下标为0向前计数。

俩个方法都返回要查找的项在数组中的位置,在没有找到的情况下返回-1,第一个参数要查找的项必须跟数组中的项完全相等,用==符号比较。俩者的地址要相等

  1. 迭代方法:都接受俩个参数,第一个为执行的函数,第二个为函数作用域(this)。

every()方法:每一item都满足函数条件时,返回true;--每一项都满足是为true。

filter()方法:返回满足函数条件的item的数组;--我要看哪些项满足条件,过滤器。

foreach()方法:为每个item都执行该函数,无返回;--我只要你们按照函数执行。

map()方法:每个item执行函数,并返回执行后的数组;--你们都执行函数,我要看你们的执行结果。

some()方法:每个item执行函数,只有要一个item执行后返回true,就返回一个true的值。--查看有没有item满足。

arra=[1,5,10,20,3,4,7];

varresult=arra.map(function(item,index,array){//index为项的索引array为数组的对象

returnitem*2;

});

console.log(result.toString());//2 10 20 40 60 8 14
  1. reduce()和reduceRight()累加器:他们都接受俩个参数,一个为执行的函数,一个为可选的缩小值。
执行的函数内,包含4个参数。pre为前一项,curr为当前项,index为索引,array为数组对象。当第一次运行函数式,pre为第一项,curr为第二项。
arra=[1,5,10,20,3,4,7];

result=arra.reduce(function(pre,curr,index,array) {//pre为1 curr为5

returnpre+curr;//求和示例

});

console.log(result);//50
  1. Date类型:类型是早期java.util.Date类基础上构建的。

  2. RegExp对象(正则表达式):

1.创建:new RegExp(/ab+c/, 'i'); //ES6新增允许的写法

a) g---global全局模式,表示正则将会依次查找并匹配整个文本。

b) i---case-insensitive忽略匹配的文本的大小写。

c) m---multiline多行匹配,即会在匹配到一行末尾时,依然会匹配下一行。

  1. 对象方法:reg.exec(进行匹配的字符串)该方法进行捕获字符串中的匹配值。

相关文章

网友评论

    本文标题:JavaSctipt高级程序 前5章左右

    本文链接:https://www.haomeiwen.com/subject/kmxbjxtx.html