1:字符串中的比较规则
"ab">"bc";>>false
"bc">"ab" >>true
"ad">"bc">>false
"az">"bb">>false
"z">"dc" >>true
"b">"az">>true
从上面的内容中我们可以看出字符串的比较是通过字母表中的索引进行比较的
"th">"th" false
"th">"t" true
"ta">"t" true
"ta">"tb" false
首先它比较第一个字符串的索引,如果第一个字符串的索引和比较的字符串中的第一个字符串的索引不相等 ,那么就比较第一个字符串的索引,不再比较后面的,不管后面有没有大于它的,如果相等那么继续比较后面的字符串索引,直到比较完最后一个字符串的索引。
2:js 可变和不可变值
字符串原始值修改不了
var str = "abc";
str[0] = "d";
console.log(str[1]="f"); >>f
console.log(str[0]); >>a
console.log(str); >>abc
字符串是可以通过[]的形式访问的。
数组的原始值发生了改变
var num = [1,2,3];
num[0] = "a";
console.log(num); >>["a", 2, 3]
3:arguments
在函数中,形参不是必须的
function fn(){
console.log(arguments[0]+arguments[1]); >>11
console.log(arguments.length); >>2
console.log(arguments); >>[10, 1]
}
fn(10,1);
arguments是一个类似数组的函数,但它仅仅也只是类似,并不是真的数组。从上面的代码中我们可以看到我并没有使用形参,但是达到了同样的效果。在js中函数的形参只是为了方便,但并不是必须的。
4:数组删除
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循环
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只是一个名称,你随意,当然不能是js中的关键字;
6: 变量生命周期
变量在它声明时初始化。
局部变量在函数调用时创建,当函数执行完毕后销毁,这和为什么要使用闭包也有一点关系;
全局变量在页面(当前页面)关闭后销毁。
网友评论