一.字符串补充
1.字符串删除
var s1="hello"
s2=s1.replace("e",""); //hllo
s2=s1.replace(s1[3],"")
//*删除字符串中的所有的数字
function f1(n1){
for(var i=0;i<n1.length;i++){
if(n1.charCodeAt(i)>=49&&n1.charCodeAt(i)<=57){
n1=n1.replace(n1[i],"")
i=i-1
}
}
alert(n1)
}
f1("he123llo")
(2)删除字符串的第一位 s1.substr(1)
删除字符串的最后一位 s1.substr(0,s1.length-2)
(3)截取字符串的开始和结束 substring
s1.substring(3,s1.length-1)
(4)删除指定的字符 split
s1="helloworld"
s2=s1.split("o") --[hell,w,rld]
数组方法:由数组转字符串 join
s2.join("") hellworld //hellwrld
s2.join("3") hell3w3rld //hell3w3rld
2.字符串的比较
(1)localeCompare:调用本地操作系统的排序规则
v1=v2 返回0 字母顺序
v1排在v2之前,返回-1
v1排在v2之后,返回1
s1="abc"
s2="edf"
s3="abc,edf"
s1.localeCompare(s2) //-1
"yellow".localeCompare("yellow") //0
"yellow".localeCompare("blue") //1
"yellow".localeCompare("zoo") //-1
//英文比较
v1.localeCompare(v2)
"3ellow".localeCompare("9oo") -1
"3ellow".localeCompare("3oo") -1
"ellow".localeCompare("Zoo") -1 大小写对比ASCII码
alert("a">"A") //true alert比较ASCII码
alert("a".localeCompare("A")) //-1
alert("北京".localeCompare("上海")) //-1 中文比较拼音前后顺序
(2)alert("a">"A") true 按ASCII码比较
3.字符串编码
(1)charCodeAt()
s1="a"
s1.charCodeAt(0) //97
s1="海"
s1.charCodeAt(0) //28023
(2)fromCharCode() :根据ascii或者Unicode码的10进制进行解析
String.fromCharCode(65) //A
String.fromCharCode(28023) //海
计算器16进制转化成10进制
张 5F20 -->24352
练习: 用户输入必须为中文
4e00-9fcf 19968-40911
(3)escape
s1="海"
escape(s1) \u6D77
unescape("\u6D77") //海
encodeURI(s1) //%E6%B5%B7 加密
decodeURI(%E6%B5%B7 )
二. 操作符
1.算术运算符
+ - * / % (取余,取模)
++ --
a=a+1 a++
a=a-1 a--
a=1
console.log(a) //1
console.log(a++) //1
console.log(a) //2
a=1
console.log(a) //1
console.log(++a) //2
console.log(a) //2
a++ 先运算后加减
++a 先加减后加减
特例: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=false
a++
--a //0
浮点精度差问题
a=1.2
console.log( --a ) //0.19999999999999996
console.log(0.1+0.2) //0.30000000000000004
a="001"
a++
console.log(a--); //2
2.赋值运算符
+= -= *= /= %=
a=12 b=11
c=a*=b+5 c=137
c=a/=b+3*(b+=4) // 15 45 60 c=0.2
c=a++ -4*b-- //40 -32
c=b-- + a++*(a-= 3 + ++b) //-1
3.关系运算符
> < == === >= <= !=
a=2
b="2"
a==b //true
a===b // false
-------------------------------------------------------
==与===的区别????
== 代表相同:先检查两个操作数的数据类型,
如不同可进行转换,在进行数值的比较,
如果相同,则调用===来进行比较
null == undefined //true
=== 严格相同:如果类型不同直接判断不同
null === undefined //false
null === null //true
undefined === undefined //true
------------------------------------------------------------
"5"==5 //true
"5"===5 //false
NaN==NaN //false NaN不参与任何比较 本身也不等于本身
null==0 //false
undefined==0 //false
true ==1 //true
"Black">"Mick" //false
"23"<"3" //
"a"<"3"
4.逻辑运算符
&& 都为真才为真
短路运算符--js依此获取每个操作数,将它们转换为布尔变量,如果是false,则中断后面的处理,
返回这个操作数得值,否则继续处理下一个操作数,返回最后操作数的值,以上称为逻辑运算的断路机制
|| 一个为真即为真
! 真变假,假变真
a=10
b=20
if(a>10 && b>20){
...y
}else{
...n
}
var a=100
var b= false
var c=(b&&(a=25))
console.log(a) ---100
var a ="1" && true && 0 && false && "abc"
a=0
var a ="abc" && true && "123"
a=123