1:字符串中的比較規(guī)則
"ab">"bc";>>false
"bc">"ab" >>true
?"ad">"bc">>false?
?"az">"bb">>false?
?"z">"dc" >>true
?"b">"az">>true
?從上面的內(nèi)容中我們可以看出字符串的比較是通過字母表中的索引進(jìn)行比較的
"th">"th" false
"th">"t" true
"ta">"t" true
"ta">"tb" false
首先它比較第一個字符串的索引沃粗,如果第一個字符串的索引和比較的字符串中的第一個字符串的索引不相等 ,那么就比較第一個字符串的索引粥惧,不再比較后面的,不管后面有沒有大于它的最盅,如果相等那么繼續(xù)比較后面的字符串索引突雪,直到比較完最后一個字符串的索引。
2:js 可變和不可變值
字符串原始值修改不了
?var str = "abc";
?str[0] = "d";
console.log(str[1]="f"); >>f
?console.log(str[0]); >>a
console.log(str); >>abc
字符串是可以通過[]的形式訪問的檩禾。
?數(shù)組的原始值發(fā)生了改變
var num = [1,2,3];
num[0] = "a";
console.log(num); >>["a", 2, 3]
3:arguments
在函數(shù)中挂签,形參不是必須的
?function fn(){
?console.log(arguments[0]+arguments[1]); >>11
?console.log(arguments.length); >>2
?console.log(arguments); >>[10, 1]
?}
?fn(10,1);
arguments是一個類似數(shù)組的函數(shù),但它僅僅也只是類似盼产,并不是真的數(shù)組饵婆。從上面的代碼中我們可以看到我并沒有使用形參,但是達(dá)到了同樣的效果戏售。在js中函數(shù)的形參只是為了方便侨核,但并不是必須的。
4:數(shù)組刪除
1// var a = [1,2,3];
2// a.length = 2;
3//console.log(a); >>[1, 2]
4// a.length = 0;
5// console.log(a); >>[]
5:跳出for循環(huán)
? bk:for(var i=0;i<4;i++){
? ? ?for(var j=0;j<4;j++){
? ? ? ? if(i===1&&j===1){
? ? ? ? ? ? ?break bk;
? ? ? ? ?}else{
? ? ? ? ? ? console.log("i:"+i+"--j:"+j);
? ? ? ? ?}
? ? ?}
?}
提試:bk只是一個名稱灌灾,你隨意搓译,當(dāng)然不能是js中的關(guān)鍵字;
6: 變量生命周期
變量在它聲明時初始化锋喜。
局部變量在函數(shù)調(diào)用時創(chuàng)建些己,當(dāng)函數(shù)執(zhí)行完畢后銷毀豌鸡,這和為什么要使用閉包也有一點關(guān)系;
全局變量在頁面(當(dāng)前頁面)關(guān)閉后銷毀段标。