一丶字符串补充
1.字符串删除
var s1="hello"
s2=s1.replace("e","")
console.log(s2); //hllo
2.字符串比较
(1)localeCompare:调用本地操作系统的排序规则
s1="abc"
s2="edf"
// s3="abc,edf"
console.log(s1.localeCompare(s2)); //-1
console.log("yello".localeCompare("yello")) //0
console.log("yello".localeCompare("blue")) //1
console.log("yello".localeCompare("zoo")) //-1
// console.log("yello".localeCompare("yello")) //-1
// console.log("yello".localeCompare("blue")) //1
// console.log("yello".localeCompare("zoo")) //-1
// alert("a">"A") //true
// console.log("a".localeCompare("A")); //-1
v1=v2 返回0
v1排在v2之前,返回-1
v1排在v2之后,返回1
中文比较---按拼音
console.log("北京".localeCompare("上海")) //-1
alert("a">"A") //true
排序(升序)
a1.sort((a,b)=>{return a.localeCompare(b)})
console.log(a1);
(2)alert("a">"A") trueo 按ascii码比较
3.字符串编码
(1)charCodeAt()
s1="a"
console.log(s1.charCodeAt(0)) //97
s2="海"
console.log(s2.charCodeAt(0)) //28023
(2)fromCharCode()
console.log(String.fromCharCode(65)) //A
console.log(String.fromCharCode(28023)) //海
(3)escape()输出unicode码
unescape()根据unicode码输出
s1="海"
console.log(escape(s1="海")); //%u6D77
console.log(unescape("\u6D77")); //海
二丶操作符
+ - / %
a=1
console.log(a); // 1
console.log(a++); //1
console.log(a); //2
console.log(a); // 1
console.log(++a); // 2
console.log(a); //2
a++ 先运算后加减
++a 先加减后运算
var a=1
b=a++ + ++a +a++
console.log(b); //7
console.log()
0+0 //0
-0+-0 // -0
infinity+infinity //infinity
-infinity+-infinity // -infinity
infinity+-infinity //NaN
5+5 //10
"5"+5 //55
隐式类型转换
5-"2" //3
"5"-"2" //3
5-true //4 5-1
5-"" //5 5-0
5-null //5
NAN-1 //NaN
infinity*0 //NaN
0/0 //NaN
infinity/infinity //NaN
"m"+1+1 //m11
1+1+"m" //2m
"m"+(1+1) //m2
a=flase
a++ //0
--A //-1
a=1.2
--a //0.19999999999999 浮点精度误差问题
a="001" 当作1
a++ //1
a-- //1
2.赋值运算符
+= -+ *= /= %=
a=1
a=a+3---> a+=3
a=12 b=11
c=a*=b+5 //192
c=a/=b+3*(b+=4) //46.09090909090909
c=a++ -4*b-- //-32
c=b-- + a++*(a-=3 + ++b) //263
3.关系运算符
> < == ===恒等于 >= <= !=
a=2 数值型
b="2" 字符型
console.log(a==b); //true
console.log(a===b); //flase
console.log(null==undefined); //true
console.log(null===undefined); //flase
==代表相同,先检查两个操作数的数据类型,
如发现不同可进行类型转换,再进行数值的比较
如果相同则调用===比较
===代表严格相同,如果类型不同,直接判断不同
Ascii码
console.log("Black">"Mick"); //flace
// console.log("23">"3"); //flace
// console.log("a">"3"); //true
4.逻辑运算符
&& 都为真才是真
短路运算符--
js一次获取每一个操作数,将他们转换为布尔变量
如果是false则中断后面的处理 返回这个操作数的值,
否则继续处理下一个操作数 以上称为逻辑运算短路机制
|| 一个为真即为真
!真变假假变真