Python程序员爬虫

JavaScrip 运算

2018-07-18  本文已影响2人  叫我老村长

1.运算符

var a =123;
var result = typeof a;
console.log(result)
console.log(typeof result) string
result = true +1 result=2
非num 先转为number 然后运算。
result = null +1 2
result = nan+1 nan 任何数字和nan运算都是nan
result = ‘123’ + ‘456’ 123456
字符串汉字 “” 不能分行 分行会报错。
解决办法:
‘都是范德萨’+
‘sfdsfds’+
‘是梵蒂冈’
result = 123+‘1’ 1231 任何值和字符串运算 先转为字符串 在拼接
result = true+‘hello’ truehello


var a =123;
a=a+''
console.log(a)
console.log(typeof a) string 123


c=123
console.log('c='+c) c=123


c=1+2+'3' 33
console.log('c='+c)


c='1'+2+3 123
console.log('c='+c) 123


c=100 - '1'
console.log('c='+c) 99
除了加法 都会转为number 然后在运算


c=2 * '8' 16
c=2 * null 0
c=2 * 'a' nan
c=2 * undfined nan
console.log('c='+c)


var d ='123'
d=number(d)
d =d - 0 变为num -0 *1 /1
console.log(typeof d)
console.log(d)

一元运算符


  • 正号

  • 负号

var a =123;
a =+123
console.log('a='+a) 123


var a =123;
a =-123


a =true
a =-a -1


a='11'
a = +a; -0 *1比 简单 直接变数值型 -11


console.log('a='+a) -123

自增自减


++


var a =1;
a++; 2
++a; 2
console.log(a++) 先赋值 在自增 所以 a=1赋值这个地方 打印 再自增
console.log('a='+a) 自增以后然后,结果2
console.log(++a) 2
console.log('a='+a) 2


d=20;
var result =d++ + ++d +d 64
进去先赋值20 出来21 + 22 +22


d=20;
d =d ++ 直接进行赋值 20 没有加1


var number=10;
null --; 9
console.log('number='+number) ;


n 10
n1 11
n 12
n1 12
n 20
n2 19
n 18
n2 18

逻辑运算


! 非

&& 与
|| 或
var a= true;
a = !a;
console.log(a) ; false


var a= 1; 先变true
a = !a;
console.log(a) ; false
console.log(typeof a) boolean


装换bool值
var a= 1;
a = !!a;
console.log(a) 变为true


var result = true && true true
var result = true && false false
。。。。。
var result = false && false false 第一个为flase就不往下看了。 false


var result =false || false false
var result =true|| false true
var result =false || true true
var result =true || true true 第一个为true就不往下看了 true


var a= 1 && 2 先转boolean
console.log(a) ; 遇到1 true 在 遇到2 true 返回2


ar result =1 &&2 2

var result =0&&1 0
遇到false就停


var result =2 || 1 2 第一个为true就不往下看了 true
var result =nan || 1 nan false 1
var result ='' || 1 '' false 1

赋值运算符


=
+=
-=
*=
%=

关系运算符


var result =5>10; false

<
<=
var result =1>true; true和数字比较变 1 false
var result =1>‘0’; 1>0
var result =5>null; 5>0
var result =10>'hello'; 10 > nan 和nan比较永远 false


var result =‘5’<‘10’; 二面都是字符串 比较字符串的unnicode 的编码
var result =‘ab’<‘a’拿第一位比 第一位相等 继续比第二位 谁大水就大。
用来对英文的排序。


scriper
unicode
console.log('\2685')
16进制。


body
里面用十进制
&#9861

相等运算符


==
console.log(‘1’=1) true ‘1’默认转为number
console.log(true=1) true


console.log(null==0) false
console.log(null == undfined) true null衍生过来的
console.log(nan='1') false nan不等于一切包括自己


var b=nan
console.log(b == nan) 无法判断 b=nan
console.log(isnan(b)) true


console.log('1' != 1)false
console.log('1' === 1)false 类型不行直接否
console.log(null === undfined) false


console.log(‘1’!== 1) true 不全等

条件运算符 三元运算符 三木运算符


条件表达式 ? 语句1 :语句2; true 1 false2
获取a,b最大值
var max = a>b? a:b ; max放返回值
获取a,b,c最大值
max = max>c? max:c ;
简写:
var max = a>b?(a>c?a:c):(b>c?b:c);

运算符优先级


&& > ||

代码块


{}
代码块包着的一起执行了。分组了

上一篇下一篇

猜你喜欢

热点阅读