摘要:對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組。類型類型來自使用操作符和構(gòu)造函數(shù)同樣返回表示日期的毫秒數(shù),但它與在構(gòu)建時(shí)使用不同的信息。類型類型,與布爾值對應(yīng)的引用類型。
引用類型 Object類型
兩種創(chuàng)建Object實(shí)例的對象
使用new操作符后跟Object構(gòu)造函數(shù)
var person=new Object(); person.name="Nicholas"; person.age=29;
對象字面量表示法
var person={ name:"Nicholas", age:29 }Array類型
創(chuàng)建數(shù)組的基本方式有兩種
使用Array構(gòu)造函數(shù),new操作符可以省略
var colors=new Array(); var colors=Array(3);
數(shù)組字面量表示法
var colors=["red","blue","green"];//創(chuàng)建一個(gè)包含3個(gè)字符串的數(shù)組 var names=[];//創(chuàng)建一個(gè)空數(shù)組 var values=[1,2,];//創(chuàng)建一個(gè)包含2或3項(xiàng)的數(shù)組,謹(jǐn)慎操作 var options=[,,,,,];//創(chuàng)建一個(gè)包含5或6項(xiàng)的數(shù)組,謹(jǐn)慎操作
數(shù)組的length不是只讀的,可以通過設(shè)置這個(gè)屬性,可以從數(shù)組的末尾移除項(xiàng)或向數(shù)組或向數(shù)組中添加新項(xiàng)
var colors=["red","blue","green"];//創(chuàng)建一個(gè)包含3個(gè)字符串的數(shù)組 colors.length=2; alert(colors[2]);//undefined var colors=["red","blue","green"]; colors.length=4; alert(colors[3]);//undefined
可以使用instanceof確定某個(gè)對象是否是數(shù)組,但是如果存在兩個(gè)以上不同的全局執(zhí)行環(huán)境,從而存在兩個(gè)以上不同版本的Array構(gòu)造函數(shù),從其中一個(gè)框架向另外一個(gè)框架傳入數(shù)組,那么傳入的數(shù)組與在第二框架中原生創(chuàng)建的數(shù)組分別具有各自不同的構(gòu)造函數(shù)。
Array.isArray()方法解決instanceof方法的問題
if(Array.isArray(value)){ //對數(shù)組執(zhí)行默寫操作 }
push()接收任意數(shù)量的參數(shù),把它們逐個(gè)添加到數(shù)組末尾,并返回修改后數(shù)組的長度。
pop()從數(shù)組末尾移除最后一項(xiàng),減少數(shù)組的length值,然后返回移除的項(xiàng)。
shift()從數(shù)組開頭移除一項(xiàng),減少數(shù)組的length值,然后返回移除的項(xiàng)。
unshift()在數(shù)組前端添加人一個(gè)項(xiàng),并返回新數(shù)組的長度。
reverse()反轉(zhuǎn)數(shù)組項(xiàng)的順序。返回值是經(jīng)過排序之后的值。
sort()排序,可以接收一個(gè)比較函數(shù)作為參數(shù)。返回值是經(jīng)過排序之后的值。
concat()將一個(gè)或多個(gè)數(shù)組添加到結(jié)果數(shù)組中,如果傳遞的值不是數(shù)組,將會(huì)被簡單地添加到結(jié)果數(shù)組的末尾。
var colors=["red","green","blue"]; var colors2=colors.concat("yellow",["black","brown"]); alert(colors);//red,green,blue alert(colors2);//red,green,yellow,black,brown
slice()基于當(dāng)前數(shù)組中的一個(gè)或者多個(gè)創(chuàng)建一個(gè)新數(shù)組,接收一個(gè)或者兩個(gè)參數(shù)指定位置開始到當(dāng)前數(shù)組末尾的所有項(xiàng),不影響原始數(shù)組。
var colors=["red","green","blue","yellow","purple"]; var colors2=colors.slice(1); var colors3=colors.slice(1,4); alert(colors2);//green,blue,yellow,purple alert(colors3);//green,blue,yellow
splice()向數(shù)組中部插入項(xiàng)。指定兩個(gè)參數(shù),刪除項(xiàng)。指定三個(gè)參數(shù),插入項(xiàng)。指定三個(gè)參數(shù),替換項(xiàng)。
var colors=["red","green","blue"]; var removed=colors.splice(0,1);//刪除第一項(xiàng) alert(colors);//green,blue alert(removed);//red返回的數(shù)組中只包含一項(xiàng) removed=colors.splice(1,0,"yellow","orange");//從位置1開始插入兩項(xiàng) alert(colors);//green,yellow,orange,blue alert(removed);//返回的是一個(gè)空數(shù)組 removed=colors.splice(1,1,"red","purple");//插入兩項(xiàng),刪除一項(xiàng) alert(colors);//green,red,purple,orange,blue alert(removed);//yellow,返回的數(shù)組中只包含一項(xiàng)
indexOf()從數(shù)組的開頭向后查找,lastIndexOf()從數(shù)組的末尾開始向前查找。
var numbers=[1,2,3,4,5,4,3,2,1]; alert(number.indexOf(4));//3 alert(number.lastIndexOf(4));//5 alert(number.indexOf(4,4));//5 alert(number.lastIndexOf(4,4));//3 var person={name:"Nicholas"}; var people=[{name:"Nicholas"}]; var morePeople=[person]; alert(people.indexOf(person));//-1 alert(morePeople.indexOf(person));//0
every()對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對每一項(xiàng)都返回true,則返回true
filter()對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回該函數(shù)會(huì)返回true的項(xiàng)組成的數(shù)組
forEach()對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),沒有返回值。
map()對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組。
some()對數(shù)組中的每一項(xiàng)給定函數(shù),如果該函數(shù)對任一項(xiàng)返回true,則返回true。
reduce()從數(shù)組的第一項(xiàng)開始,逐個(gè)遍歷到最后。
reduceRight()從數(shù)組的最后一項(xiàng)開始,向前遍歷到第一項(xiàng)。
var value=[1,2,3,4,5]; var sum=value.reduce(function(prev,cur,index,array){ return prev+cur; }); alert(sum);//15 var value=[1,2,3,4,5]; var sum=value.reduceRight(function(prev,cur,index,array){ return prev+cur; }); alert(sum);//15Date類型
Date類型來自UTC
使用new操作符和Date構(gòu)造函數(shù)
var now=new Date(); var someDate=new Date(Date.parse("May 25, 2004")); var someDate=new Date("May 25, 2004");
Date.UTC()同樣返回表示日期的毫秒數(shù),但它與Date.parse()在構(gòu)建時(shí)使用不同的信息。Date.UTC()的參數(shù)分別是年份、基于0的月份、月中的哪一天、小時(shí)數(shù)、分鐘、秒以及毫秒
var y2k=new Date(Date.UTC(2000,0)); var allFives=new Date(Date.UTC(2005,4,5,17,55,55));
Data.now()返回表示調(diào)用這個(gè)方法時(shí)的日期和時(shí)間的毫秒數(shù)
toDateString()以特定于實(shí)現(xiàn)的格式顯示星期幾、月、日和年
toTimeString()以特定于實(shí)現(xiàn)的格式顯示時(shí)、分、秒和時(shí)區(qū)
toLocaleDateString()以特定于實(shí)現(xiàn)的格式顯示時(shí)、分、秒
toLocaleTimeString()以特定于地區(qū)的格式顯示星期幾、月、日和年
toUTCString()以特定于實(shí)現(xiàn)的格式完整的UTC日期
getTime()返回表示日期的毫秒數(shù),與valueOf()方法返回的值相同
setTime(毫秒)以毫秒數(shù)設(shè)置日期,會(huì)改變整個(gè)日期
getFullYear()取得4位數(shù)的年份,如2007而非僅07
getUTCFullYear()返回UTC日期的4位數(shù)年份
setFullYear(年)設(shè)置日期的年份。傳入的年份值必須是4位數(shù)字,如2007而非僅07
setUTCFullYear(年)設(shè)置UTC日期的年份。傳入的年份值必須是4位數(shù)字,如2007而非僅07
getMonth()返回日期中的月份,其中0表示一月,11表示十二月
getUTCMonth()返回UTC日期中的月份,其中0表示一月,11表示十二月
setMonth(月)設(shè)置日期的月份。傳入的月份值必須大于0,超過11則增加年份
setUTCMonth(月)設(shè)置UTC日期的月份。傳入的月份值必須大于0,超過11則增加年份
getDate()返回日期月份中的天數(shù),1到31
getUTCDate()返回UTC日期月份中的天數(shù),1到31
setDate(日)設(shè)置日期月份中的天數(shù)。如果傳入的值超過了該月中應(yīng)有的天數(shù),則增加月份
setUTCDate(日)設(shè)置UTC日期月份中的天數(shù)。如果傳入的值超過了該月中應(yīng)有的天數(shù),則增加月份
getDay()返回日期中星期的星期幾,其中0表示星期日,6表示星期六
getUTCDay()返回UTC日期中星期的星期幾,其中0表示星期日,6表示星期六
getHours()返回日期中的小時(shí)數(shù),0到23
getUTCHours()返回UTC日期中的小時(shí)數(shù),0到23
setHours(時(shí))設(shè)置日期中的小時(shí)數(shù)。傳入的值超過了23則增加月份中的天數(shù)
setUTCHours(時(shí))設(shè)置UTC日期中的小時(shí)數(shù)。傳入的值超過了23則增加月份中的天數(shù)
getMinutes()返回日期中的分鐘數(shù),0到59
getUTCMinutes()返回UTC日期中的分鐘數(shù),0到59
setMinutes(分)設(shè)置日期中的分鐘數(shù)。傳入的值超過59則增加小時(shí)數(shù)
setUTCMinutes(分)設(shè)置UTC日期中的分鐘數(shù)。傳入的值超過59則增加小時(shí)數(shù)
getSeconds()返回日期中的秒數(shù),0到59
getUTCSeconds()返回UTC日期中的秒數(shù),0到59
setSeconds(秒)設(shè)置日期中的秒數(shù)。傳入的值超過了59會(huì)增加分鐘數(shù)
setUTCSeconds(秒)設(shè)置UTC日期中的秒數(shù)。傳入的值超過了59會(huì)增加分鐘數(shù)
getMilliseconds()返回日期中的毫秒數(shù)
getUTCMilliseconds()返回UTC日期中的毫秒數(shù)
setMilliseconds(毫秒)設(shè)置日期中的毫秒數(shù)
setUTCMilliseconds(毫秒)設(shè)置UTC日期中的毫秒數(shù)
getTimezoneOffset()返回本地時(shí)間與UTC時(shí)間相差的分鐘數(shù)。例如,美國東部標(biāo)準(zhǔn)時(shí)間返回300。在某地進(jìn)入夏令時(shí)的情況下,這個(gè)值會(huì)有所變化
RegExp類型
RegExp類型,g表示全局,i表示不區(qū)分大小寫,m表示多行模式
var text = "mom and dad and baby"; var pattern = /mom( and dad( and baby)?)?/gi; var matches = pattern.exec(text); alert(matches.index); // 0 alert(matches.input); // "mom and dad and baby" alert(matches[0]); // "mom and dad and baby" alert(matches[1]); // " and dad and baby" alert(matches[2]); // " and baby" var text = "cat, bat, sat, fat"; var pattern1 = /.at/; var matches = pattern1.exec(text); alert(matches.index); //0 alert(matches[0]); //cat alert(pattern1.lastIndex); //0 matches = pattern1.exec(text); alert(matches.index); //0 alert(matches[0]); //cat alert(pattern1.lastIndex); //0 var pattern2 = /.at/g; var matches = pattern2.exec(text); alert(matches.index); //0 alert(matches[0]); //cat alert(pattern2.lastIndex); //3 matches = pattern2.exec(text); alert(matches.index); //5 alert(matches[0]); //bat alert(pattern2.lastIndex); //8Function類型
Function類型
每個(gè)函數(shù)都是Function類型的實(shí)例,而且與其他引用類型一樣具有屬性和方法。函數(shù)時(shí)對象,因此函數(shù)名實(shí)際上也是一個(gè)紙箱函數(shù)對象的指針,不會(huì)與某個(gè)函數(shù)綁定。函數(shù)通常是使用函數(shù)聲明語法定義的。
function sum(num1,num2){ return num1+num2; } var sum=function(num1,num2){ return num1+num2; }
在代碼開始執(zhí)行之前,解析器就已經(jīng)通過一個(gè)名為函數(shù)聲明提升的過程,讀取并將函數(shù)聲明添加到執(zhí)行環(huán)境中。對代碼求值時(shí),JavaScript引擎在第一遍會(huì)聲明函數(shù)并將它們放到源代碼樹的頂部。所以即使聲明函數(shù)的diamante在調(diào)用它的代碼后面,JavaScript引擎也能把函數(shù)聲明提升到頂部。
alert(sum(10,10)); function sum(num1,num2){ return num+num2 }
alert(sum(10,10)); var sum=function(num1,num2){ return num1+num2 }Boolean類型
Boolean類型,與布爾值對應(yīng)的引用類型。要?jiǎng)?chuàng)建Boolean對象,可以調(diào)用Boolean構(gòu)造函數(shù)并傳入true或false值
var booleanObject=new Boolean(true)Number類型
Number類型
toFixed()方法按照指定的小數(shù)位返回?cái)?shù)值的字符串表示,toExponential()方法返回以指數(shù)表示法表示的數(shù)值的字符串形式,toPrecision()方法返回固定大小fixed格式或者exponential格式
var num=10; alert(num.toFixed(2));//"10.00" alert(num.toExponential(1));//"1.0e+1" var num=99; alert(num.toPrecision(1));//"1e+2" alert(num.toPrecision(2));//"99" alert(num.toPrecision(3));//"99.0"String類型
String類型,使用String構(gòu)造函數(shù)來創(chuàng)建
var stringObject=new String("hello world");
charAt()和chartCodeAt()接收一個(gè)參數(shù),返回這個(gè)參數(shù)位置上的字符
concat()將一個(gè)或多個(gè)字符串拼接起來
slice()、substr()和substring()返回被操作字符串的一個(gè)子字符串
indexOf()和lastIndexOf()從字符串中搜索給定的子字符串
trim()創(chuàng)建一個(gè)字符串的副本,刪除前置及后綴的所有空格
toLowerCase()、toLocaleLowerCase()、toUpperCase()和toLocaleUpperCase()
var stringValue = "hello world"; alert(stringValue.charAt(1)); //"e" var stringValue = "hello world"; alert(stringValue.charCodeAt(1)); // 輸出"101" var stringValue = "hello "; var result = stringValue.concat("world"); alert(result); //"hello world" alert(stringValue); //"hello" var stringValue = "hello world"; alert(stringValue.slice(-3)); //"rld" alert(stringValue.substring(-3)); //"hello world" alert(stringValue.substr(-3)); //"rld" alert(stringValue.slice(3, -4)); //"lo w" alert(stringValue.substring(3, -4)); //"hel" alert(stringValue.substr(3, -4)); //""(空字符串) var stringValue = "hello world"; alert(stringValue.indexOf("o")); //4 alert(stringValue.lastIndexOf("o")); //7 var stringValue = " hello world "; var trimmedStringValue = stringValue.trim(); alert(stringValue); //" hello world " alert(trimmedStringValue); //"hello world" var stringValue = "hello world"; alert(stringValue.toLocaleUpperCase()); //"HELLO WORLD" alert(stringValue.toUpperCase()); //"HELLO WORLD" alert(stringValue.toLocaleLowerCase()); //"hello world" alert(stringValue.toLowerCase()); //"hello world" var text = "cat, bat, sat, fat"; var pattern = /.at/; //與 pattern.exec(text)相同 var matches = text.match(pattern); alert(matches.index); //0 alert(matches[0]); //"cat" alert(pattern.lastIndex); //0 var text = "cat, bat, sat, fat"; var pos = text.search(/at/); alert(pos); //1 var text = "cat, bat, sat, fat"; var result = text.replace("at", "ond"); alert(result); //"cond, bat, sat, fat" result = text.replace(/at/g, "ond"); alert(result); //"cond, bond, sond, fond" var stringValue = "yellow"; alert(stringValue.localeCompare("brick")); //1 alert(stringValue.localeCompare("yellow")); //0 alert(stringValue.localeCompare("zoo")); //-1
內(nèi)置對象
Global對象,eval方法就像是一個(gè)完整的ECMAScript解析器,只接收一個(gè)參數(shù),即要執(zhí)行的ECMAScript字符串。eval{"alert("hi")"};相當(dāng)于alert("hi");
對象屬性
undefined:特殊值undefined
Date:構(gòu)造函數(shù)Date
NaN:特殊值NaN
RegExp:構(gòu)造函數(shù)RegExp
Infinity:特殊值Infinity
Error:構(gòu)造函數(shù)Error
Object:構(gòu)造函數(shù)Object
EvalError:構(gòu)造函數(shù)EvalError
Array:構(gòu)造函數(shù)Array
RangeError:構(gòu)造函數(shù)RangeError
Function:構(gòu)造函數(shù)Function
ReferenceError:構(gòu)造函數(shù)ReferenceError
Boolean:構(gòu)造函數(shù)Boolean
SyntaxError:構(gòu)造函數(shù)SyntaxError
String:構(gòu)造函數(shù)String
TypeError:構(gòu)造函數(shù)TypeError
Number:構(gòu)造函數(shù)Number
URIError:構(gòu)造函數(shù)URIError
Math對象
min()和max()方法確定最大值和最小值
Math.ceil()、Math.floor和()Math.round()四舍五入相關(guān)方法
Math.random()獲取隨機(jī)值
var max = Math.max(3, 54, 32, 16); alert(max); //54 var min = Math.min(3, 54, 32, 16); alert(min); //3 alert(Math.ceil(25.9)); //26 alert(Math.ceil(25.5)); //26 alert(Math.ceil(25.1)); //26 alert(Math.round(25.9)); //26 alert(Math.round(25.5)); //26 alert(Math.round(25.1)); //25 alert(Math.floor(25.9)); //25 alert(Math.floor(25.5)); //25 alert(Math.floor(25.1)); //25 var num = Math.floor(Math.random() * 10 + 1);
其他方法
Math.abs(num)返回num的絕對值
Math.asin(x)返回x的反正弦值
Math.exp(num)返回Math.E的num次冪
Math.atan(x)返回x的反正切值
Math.log(num)返回num的自然對數(shù)
Math.atan2(y,x)返回y/x的反正切值
Math.pow(num,power)返回num的power次冪
Math.cos(x)返回x的余弦值
Math.sqrt(num)返回num的平方根
Math.sin(x)返回x的正弦值
Math.acos(x)返回x的反余弦值
Math.tan(x)返回x的正切值
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/97549.html
摘要:當(dāng)代碼在一個(gè)環(huán)境中執(zhí)行時(shí),會(huì)創(chuàng)建變量對象的一個(gè)作用域鏈。作用域鏈的用途,是保證對執(zhí)行環(huán)境有權(quán)訪問的所有變量和函數(shù)的有序訪問。這樣,一直延續(xù)到全局執(zhí)行環(huán)境全局執(zhí)行環(huán)境的變量對象始終都是作用域鏈中的最后一個(gè)對象。 變量、作用域和內(nèi)存問題 基本類型和引用類型的值 基本類型值指的是簡單的數(shù)據(jù)段,而引用類型值值那些可能由多個(gè)值構(gòu)成的對象。 定義基本類型值的引用和引用類型值的方法是類似的,創(chuàng)建...
摘要:類型對象是的一個(gè)實(shí)例,表示整個(gè)頁面,而且,對象是對象的一個(gè)屬性,因此可以將其作為全局對象來訪問。刪除指定位置的行。創(chuàng)建創(chuàng)建創(chuàng)建第一行創(chuàng)建第二行將表格添加到文檔主體中 DOM 節(jié)點(diǎn)層次 Node類型 DOM1級定義了一個(gè)Node接口,該接口將由DOM中的所有節(jié)點(diǎn)類型實(shí)現(xiàn) 節(jié)點(diǎn)類型由在Node類型中定義的12個(gè)數(shù)值常量來表示,任何節(jié)點(diǎn)類型必居其一 Node.ELEMENT_NODE(...
摘要:腳本編程跨文檔消息傳遞跨文檔消息傳送,簡稱為,指的是來自不同域的頁面間傳遞消息的核心是方法,在規(guī)范中,除了部分之外的其他部分也會(huì)提到這個(gè)方法名,但都是為了同一個(gè)目的,向另一個(gè)地方傳遞參數(shù)。第一個(gè)頁面加載時(shí)為空 HTML5腳本編程 跨文檔消息傳遞 跨文檔消息傳送,簡稱為XMD,指的是來自不同域的頁面間傳遞消息 XMD的核心是postMessage()方法,在HTML5規(guī)范中,除了XDM...
摘要:如果不需要偽元素信息,第二個(gè)參數(shù)可以輸操作樣式表類型表示的是樣式表,包括通過元素包含的樣式表和在元素中定義的樣式表表示樣式表是否被禁用的布爾值。包括元素的高度可見的水平滾動(dòng)條的高度上邊框高度和下邊框高度。顯示處理指令節(jié)點(diǎn)。 DOM2和DOM3 DOM變化 針對XML命名空間的變化 有了XML命名空間,不同XML文檔的元素就可以混合在一起,共同構(gòu)成格式良好的文檔,而不必?fù)?dān)心發(fā)生命名沖突...
摘要:也就是說避免屬性查找或其他的操作。簡化循環(huán)體循環(huán)體是執(zhí)行最多的,所以要確保其被最大限度地優(yōu)化。代碼組織組織代碼要考慮到可維護(hù)性并不一定是傳送給瀏覽器的最好方式。 最佳實(shí)踐 可維護(hù)性 什么是可維護(hù)性的代碼 如果說代碼是可維護(hù)的,它需要遵循以下特點(diǎn) 可理解性——其他人可以接手代碼并理解它的意圖和一般途徑,而無需原開發(fā)人員的完整解釋。 直觀性——代碼中的東西一看就能明白,不管其操作過程多...
閱讀 3380·2021-11-22 09:34
閱讀 2898·2021-10-09 09:43
閱讀 1467·2021-09-24 09:47
閱讀 2215·2019-08-30 12:53
閱讀 1014·2019-08-29 14:00
閱讀 3383·2019-08-29 13:17
閱讀 2280·2019-08-28 18:00
閱讀 1298·2019-08-26 12:00