一、前言 接著上一篇繼續記筆記 二、內容 動態的屬性 傳遞參數 沒有塊級作用域 Object類型 Array類型 Date類型 RegExp類型 Function類型 Number類型 String類型 Math對象 ...
一、前言
接著上一篇繼續記筆記
二、內容
動態的屬性
var person = new Object(); person.name = "Nicholas"; alert(person.name); //"Nicholas" 不能給基本類型的值添加屬性 var name = "Nicholas"; name.age = 27; alert(name.age); //undefined
傳遞參數
function setName(obj){
obj.name = "Nicholas";
//以下為局部對象,毫無作用
obj = new Object();
obj.name = "Greg";
}
沒有塊級作用域
if(true){
var color = "blue";
}
alert(color); //"blue"
for(var i=0;9<10;i++){
doSomething(i);
}
alert(i); //10
Object類型
var person = {
name : "Nicholas",
age : 29
5 : true
};
alert(person["name"]);
alert(person.name)
Array類型
var colors = new Array();
var colors = new Array(20);
var colors = new Array("red","blue","green");
var colors = ["red","blue","green"];
var colors = [];
//基本方法
Array.isArray(object); 是否為數組
//隊列方法
array.push(“item1”,“item2”); 向數組末尾添加若幹元素 並 返回修改後的數組長度
array.pop(); 從數組末尾移除最後一項 並 返回移除的項
array.shift(); 從數組取得第一項
array.unshift(“item1”,“item2”); 向數組的頭部添加任意個項 並 返回新數組的長度
//重排序方法
array.reverse(); 反轉數組順序
array.sort(); 排序
//操作方法
array.concat("item1",["item2","item3"]); 連接其它元素 並 返回新數組
array.slice(startIndex,endIndex); 從數組中抽取數組
array.splice(startIndex,howmany,"item1","item2",..) 刪除(前兩個參數),插入(第2個參數設為0),替換
//位置方法
array.indexOf(element) //從數組頭部開始找
array.lastIndexOf(element) //從數組尾部開始找
//迭代方法
array.every(function(item,index,array)) //每一項都返回true,則返回true
array.filter(function(item,index,array)) //返回符合function條件的數組
array.forEach(function(item,index,array)) //無返回值
array.map(function(item,index,array)) //返回每次函數調用的結果組成的數組
array.some(function(item,index,array)) //任一一項返回true,則返回true
//歸併方法
array.reduce(function(prev.cur.index.array)) //從數組第一項迭代所有項 並 返回一個值
array.reduceRight(function(prev.cur.index.array)) //從數組最後一項迭代所有項 並 返回一個值
Date類型
var now = new Date();
RegExp類型
var expression = / pattern / flags;
var re = new RegExp(pattern, flag);
flag: g——全局模式,應用於所有字元串
i——不區分大小寫
m——多行模式
var matches = regExp.exec(text) //返回包含第一個匹配信息的數組
matches.index —— 匹配項在字元串中的位置
matches.input —— 輸入的字元串
regExp.test(text) —— 目標字元串與某個模式是否匹配
Function類型
function c(propertyName){
return function(object1,object2){
var value1 = object1[propertyName];
var value2 = object2[propertyName];
if(value1 < value2){
return -1;
}else if (value1 > value2){
return 1;
}else{
return 0;
}
}
}
//調用
var s = c("name");
var result = s(a,b);
//在特定的作用域中調用函數
obj.call(thisobj,arg1,arg2,...);
obj.apply(thisobj,[arg1,arg2,...]);
obj.bind(thisObj,arg1,atg2);
Number類型
Number類型的實例化對象提供了
number.toFixed(n) —— 按指定的小數位返回數值的字元串表示
number.toExponential(n) —— 返回指數表示法,能指定小數位
String類型
string.substring(startIndex, endIndex) —— 根據頭尾位置返回一個字元串
string.substr(startIndex, length) —— 根據頭位置與長度返回一個字元串
string.indexOf("s",index) —— 從字元串頭部開始,返回某字元在字元串中的索引,第二個參數指定從哪個索引開始檢索
string.lastIndexOf("s",index) —— 從字元串尾部開始,返回某字元在字元串中的索引,第二個參數指定從哪個索引開始檢索
string.match(pattern) —— 字元串根據正則返回數組
string.search(pattern) —— 字元串根據正則返回第一個匹配項的索引
string.replace(oldstring.newstring) —— 只替換第一個符合的,如果替換全部則第一個參數需要使用正則
Math對象
Math.min()
Math.max()
Math.ceil() —— 執行向上舍入
Math.floor() —— 執行向下舍入
Math.round() —— 執行標準舍入
Math.random() —— 方法返回大於等於0小於1的一個隨機數