字符串的各種方法
str.charAt(1); 從第0個開始計算獲取第一個子符串,如str=‘你好嗎’獲取到‘好’
str.charCodeAt(1); 獲取對應字符串的編碼數字;從第0個開始計算
String.fromCharCode(22937, 21619); 返回對應字符串編碼的字符串;如下應該記一下(靜態方法)
0~9的編碼是48~57
a~z的編碼是97~122
A~Z的編碼是65~90
str.indexOf('x', 4); 從零開始尋找x獲得9 'x'用來肯定所選字符串,做爲目標,4是可選值從第四個開始找
str.lastIndexOf('o'); 從後往前開始找
'1000' < '2' // true 字符串的比較是比較字符編碼大小
'1000' > 2 // true 隱式轉換,轉化爲數字進行比較
str.substr(2,4) 從下表第三開始日後4個字符
str.substring(0, 4); // 截取字符串,從低0的空格到第4個
substring是以兩個參數中較小一個做爲起始位置,較大的參數做爲結束位置
以上兩個都屬於清拷貝,原來的父元素不作修改
str.slice(1,5); // 做用效果與substring相同,但可使用負數。不會自動比較先後大小值
str.toUpperCase(); // 轉化爲大寫
str.toLowerCase(); // 轉化爲小寫
str.split('.', 2); // 將字符串切割爲數組,第一個值寫切割的內容(若是選擇空,那麼將獲得長度爲一的一整個數組,若是爲''那麼將會把每一個字符切割,第二個值寫獲得的數組個數,從前日後,後面多餘的會被捨棄。
replace(被替換的字符,新的替換用字符)
var arr = [ 'www', baidu', 'com' ];
arr.join('aaa'); // 'www.baidu.com' 與上面的split相互使用,用來把數組鏈接爲字符串。
josn
a={name:'ssasd',neir:555}
使用for (var i in a){
}來進行循環
數組的添加與刪除
會改變數組
var arr = [ 1,2,3 ];
alert( arr.push( 'abc' ) ); 向最後添加abc字符串,返回值爲數組長度
alert(arr.pop()); 刪除最後一個字符串,返回值爲被刪除的字符串
alert( arr.unshift( 0 ) ); 向開頭添加內容,返回數組長度 // IE 6 7 不支持 unshift 返回值
alert(arr.shift()); 刪除第一個字符串,返回值爲第一個字符串。
arr.splice( 0 , 0, 'aaaaaa')多項功能 第一個爲選擇位置,第0位,第二個0爲刪除個數,第三個位添加的內容
返回值爲被刪除的值
數組去重小例子
var arr = [ 1,2,2,4,2 ];
for ( var i=0; i<arr.length; i++ ) {
for ( var j=i+1; j<arr.length; j++ ) {
if ( arr[i] == arr[j] ) {
arr.splice( j, 1 );
j--;
}
}
}
sort排序方法
arr.sort(); 默認爲比較字符編碼大小進行排序,能整理字母
會改變原數組,返回自己
數字排序須要加函數
arr2.sort(function( a, b ) {
return a - b;
});
排序帶px單位的值
arrWidth.sort(function ( a, b ) {
return parseInt(a) - parseInt(b);
});
隨機排序 使用random隨機數
arr.sort(function ( a, b ) {
return Math.random() - 0.5;
});
取隨機值
var x = 3;
var y = 49;
// alert( Math.round( Math.random()*(y-x) + x ) );
// 0~x
// alert( Math.round( Math.random()*x) );
// 1~x
alert( Math.ceil( Math.random()*x) );向上取整數
合併多個不一樣的數組,使用concat
arr1.concat( arr2, arr3 )
使字符串倒着輸出
arr1.reverse();
時間設置
var myTime = new Date();
var iYear = myTime.getFullYear();
var iMonth = myTime.getMonth()+1;
var iDate = myTime.getDate();
var iWeek = myTime.getDay();
var iHours = myTime.getHours();
var iMin = myTime.getMinutes();
var iSec = myTime.getSeconds();
floor 向下取整
// 天:Math.floor(t/86400)
// 時:Math.floor(t%86400/3600)
// 分:Math.floor(t%86400%3600/60)
// 秒:t%60
var t = Math.floor((iNew - iNow)/1000);
// 毫秒 - 秒
var str = Math.floor(t/86400)+'天'+Math.floor(t%86400/3600)+'時'+Math.floor(t%86400%3600/60)+'分'+t%60+'秒';
各種在if中的真假問題
a是假 var a=0;
b是真 var b='0';
c是假 var c='';
d是假 var d=null;
e是假 var e=undefined;
f是真 var f=[];
g是真 var g={};
h是真 var h=function(){};
ECMAScript:標準、核心
HTML 標籤類型:block、inline、inline-block、table……
JS中的數據類型:數字、字符串、布爾、函數、對象(obj、[]、{}、null)、未定義
parseInt(num) == parseFloat(num)取整與取餘數
isNaN(); // true false
// 判斷某些值是否是數字
// 不喜歡數字、討厭數字
查找id爲id的元素
getElementById('id')
找到第x個div
getElementsByTagName('div')[x]
改變對象的clsaa
obj.className='class'
獲取元素最終屬性值的方法(如下寫法解決了大部分兼容性問題)obj爲對象,attr是具體屬性例如‘width’
function getStyle ( obj, attr ) { return obj.currentStyle?obj.currentStyle[attr] : getComputedStyle( obj )[attr]; }
改變對象多個css屬性的寫法
oDiv.style.cssText = ' width:200px; height:200px; '
各類判斷方法
if(){}else if(){}else if(){}else if(){}else{} 若是內容只有一行容許不加花括號,可是下降了可讀性。
switch(x){
若是x等於?
case 1: 執行語句1;
break;跳出,再也不執行下面語句
case 2: 執行語句2;
break;
default: 執行語句3;
(若是都不符合那麼能夠寫入default,執行語句3,能夠不寫)
三元運算,極度簡化的判斷
例如:x?a:b 若是x成立,那麼執行a,不然執行b b能夠用void:0代替(說明爲空)
使用與&&或||進行簡化判斷例如
a&&b 若是a成立,那麼輸出執行或輸出b 若是a不成立,直接輸出false
a||b 若是a成立,那麼輸出 true 若是a不成立那麼輸出b
this的認知
this : 這個
this: 指的是調用 當前 方法(函數)的那個對象
return 返回值
數字、字符串、布爾、函數、對象(元素\[]\{}\null)、未定義
1) 函數名+括號:fn1() ==> return 後面的值;
2) 全部函數默認返回值:未定義;
3) return 後面任何代碼都不執行了;
當函數的參數個數沒法肯定的時候:用 arguments
arguments => [ 1,2,3 ] —— 實參的集合
定時器
var timer = setInterval( 函數, 毫秒 );
clearInterval( timer );
setTimeout()
clearTimeout()