一、字符串补充
1、字符串删除
(1)replace
var s1 = “hello”
console.log(s1.replace(“e”,“”))
console.log(s1.replace(s1[3],“”))
(2)删除字符串的第一位
删除字符串的最后一位
substr
(3)截取字符串的开始和结束
substring
(4)删除指定字符
s1="helloworld"
split
数组方法:由数组转字符串 join
s2.join("")
2、字符串的比较
(1)localeCompare:调用的本地操作系统的排序规则
s1 = “abc”
s2 = “edf”
//s3 = “abc,edf”
s1.localCompare(s2)
//英文比较
v1.localCompare(v2)
v1=b2 返回的是0
v1排在v2之前,返回-1
v1排在v2之后,返回1
function f1(a1){
a1.sort((a,b)=>{return a.localeCompare(b)})
=>箭头函数
console.log(a1)
}
f1(["哈尔滨","北京","上海","杭州","深圳"])
(2)alert("a">"A") true 按ascii码比较
3.字符串编码
(1)charCodeAt
s1 = “a”
console.log(s1.charCodeAt(0)) //97
s2 = “海”
console.log(s2.charCodeAt(0)) //28023
(2)fromcharcode():根据ascii或unicode码的十进制进行解析
console.log(String.fromCharCode(65)) //A
console.log(String.fromCharCode(28023)) //海
(3)escape() --输出unicode码
unescape() --根据unicode码输出字符
var s1 = "海"
console.log(escape(s1)) //\u6D77
console.log(unescape("\u6D77")) //海
console.log(encodeURI(s1)) //%E6%B5%B7
encodeURI() 加密
decodeURI() 解密
二、操作符
1、算术运算符
+ - * / %(取余、取模)
++ –
a=a+1 a++
a=a-1 a--
var 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(a,b) //4,7
var a=3
b=(a++)+(--a)+(++a)+(a--)
console.log(a,b) //3,14
console.log(0+0) //0
console.log(-0+-0) //-0
console.log(Infinity+Infinity) //Infinity
console.log(-Infinity+-Infinity) //-Infinity
console.log(Infinity+-Infinity) //NaN
console.log(5+5) //10
console.log("5"+5) //55
console.log(5-"2") //3
console.log("5"-"2") //3
console.log(5-true) //4
console.log(5-"") //5 相当于5-0
console.log(5-null) //5
console.log(NaN-1) //NaN
console.log(Infinity*0) //NaN
console.log(0/0) //NaN
console.log(Infinity/Infinity) //NaN
console.log("m"+1+1) //m11
console.log(1+1+"m") //2m
console.log("m"+(1+1)) //m2
var b=false
console.log(b++) //0
console.log(--b) //-1
var c=1.2
console.log(--c) //0.19999999999999996 浮点精度差问题
var d="001"
console.log(d++) //1
console.log(d--) //1
console.log(0.1+0.2) //0.30000000000000004
2、赋值运算符
+= -= *= /= %=
a=a+3 ----- a+=3
3、关系运算符
> < == ===(恒等于) >= <= !=
var a=2 (数值型)
var b="2" (字符型)
console.log(a==b) //true
console.log(a===b) //false
== 代表相同,先检查两个操作数的数据类型,如不同,可进行类型转换,再进行值的比较
如果相同,则调用===进行值的比较
console.log(null==undefined) //true
=== 严格相同,如果类型不同,直接判断不同
如果类型不同,就一定不等
console.log(null===undefined) //false
console.log(null==0) //false
console.log(undefined==0) //false
console.log(true==1) //true
4、逻辑运算符
&& 都为真才为真
短路运算符–
js依次获取每一个操作数,将它们转换为布尔变量,如果是false,则中断后面的处理,返回这个操作数的值,否则处理下一个操作数,以上成为逻辑判断的短路机制
|| 一个为真都为真
! 真变假,假变真