一、字符串补充
1、字符串删除
(1)、replace
var s1="hello"
console.log(s1.replace("e",""));
console.log(s1.replace(s1[3],''));
2、localeCompare:调用的是本地操作系统的排序规则
英文比较
var s1="abc"
var s2="edf"
v1.localeCompare(v2)
如果v1=v2 返回0
v1排在v2之前,返回-1
v1排在v2后面,返会1
// 中文比较按首字母拼音
// console.log("北京".localeCompare("上海")); //-1
// console.log("上海".localeCompare("正海")); //-1
alert比较Ascii码
// alert("a".localeCompare("A"))
// alert("a">"A")
3、字符串编码
charCodeAt()
(2)、fromCharcode():根据ascii或者unicode码的十进制码解析
console.log(String.fromCharCode(65));
console.log(String.fromCharCode(26446));
console.log(String.fromCharCode(31054));
console.log(String.fromCharCode(20934));
(3)、secape() 输出Unicode码
unescape() 根据unicode码输出字符
encodeURI() 加密
dncodeURI() 解密
二、操作符
1、算数运算符
+ - * / % (取余,取模)
++ --
a++ 先运算再加减
++a 先加减后运算
var a=3
b=a++ +--a + ++a + a--
a=3
b=14
console.log(b)
特例 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-"2"); //3
console.log("5"-"2"); //3
console.log(5-true); //4
console.log(5-""); //5
console.log(NaN-1); //NaN
console.log( Infinity*0);//NaN
// a=false
// console.log(a++);//0
// console.log(--a);//0
// a=1.2
// console.log(--a);//0.19999999999999996 浮点精度误差问题
// a="001"
// console.log(a++); //1
// console.log(a--); //2
赋值运算符
+= -= *= /= %=
a=1
a=a+3 -->a+=3
3、关系运算符
> < == === >= <= !=
==:代表相同 先检查两个操作数的数据类型,如不同可进行类型转换,在进行数值比较,如果相同调用三个等号比较
===:代表完全相同 如果类型不同,直接判断不同
a=2
b="2"
console.log(a==b); //true
console.log(a===b);//false
console.log(null==undefined) //true
console.log(null===null);//true
console.log(undefined===undefined);//true
console.log(null==0) false
console.log(true==1); //true
4、逻辑运算符
&& || !
js依次获取每个操作符,转化为布尔值,如果是false则中断后面的处理,返回这个操作数的值,否则就继续处理下一个操作数,返回最后一个操作数的值,以上成为逻辑操作的短路处理