JavaScript中进制表示
0b 二进制
0o 八进制
0x 十六进制
正常的进制表示:设定表示十进制的10
二进制 b1010
八进制 o12
十进制 10d
十六进制 ah
标示符
变量名命名规范
变量名、参数名、函数名都叫表示符
在使用过程中,带括号的叫做函数名,不带括号的叫做变量名/参数名
变量名,函数名,参数名的命名,不能以数字开头,但是可以包含数字,可以一字母、下划线、$开头,当中不能包含空格和中文
区分大小写 Abc和abc不是一个变量名
标示符不能以关键字和保留字命名
建议使用驼峰命名法,例如myFirstName.
运算符
1.赋值运算符
= 为指定的变量或其他对象赋值
2.符合运算符
+= -= *= /=
3.算数运算符
++:递增,自增
--:递减,自减
a++: 先投入使用或是先调用a的值,然后再自增1;
++a: 是先自增1 然后在被调用或是投入使用
console.log(++a);和console.log(a += 1);效果一样
<script>
var a = 10 ;
var b = 15 ;
console.log(a += 1 < b) ;
console.log(a = a + 1 < b);
</script>
这两种情况结果不一样,上面的是输出11,下面的输出是true。因为涉及到优先级问题。第一个是因为a+=1是一个运算式,所以要先运算a+=1,等同于a=a+1<b,先运算1<b结果为true,在运算a=a+1=11;
第二个是先运算a=a+1等于11,在用11去跟b=15比较,再把11<15的结果true赋值给a,所以为结果true。这里是a的结果为true,并不是a=a+1<b的结果为true。
4.关系运算符
> < >= <= != == ===
=== 两个数据必须是同类型的
5.三元条件运算符
判断表达式? 正确a:错误b 表达式的值为true执行a,表达式的值为false执行b
三元条件运算符内可以嵌套三元运算符
6.逻辑运算符
&&:前后两个表达式都是true,整体表达式才为true;
短路情况:只要第一个表达式为false,整个表达式就为false,第二个表达式,就会不参与运算。
||: 两个表达式只要有一个表达式是true,这个整体表达式就为true;
短路情况: 只要第一个表达式为true,这个表达式就为true,第二个表达式就不参与运算。
!: 假如一个表达是的结果为false,那么加上! 这个表达时式的结果就会变成true。
var a = "a" ;
var b = "b" ;
console.log(a<b);
这种字符串之间的比较,是根据字母在acall中的码点来进行比较的,因为b对应的码点大于a对应的码点,所以a<b的运行结果是true。
var a = "abc" ;
var b = "acb" ;
console.log(a<b);
结果为true,因为第一位都是a第二位一个是b一个是c,c对应的码点大于b对应的码点,所以a<b的结果为true。
A对应的acall码为65;
a对应的acall码为91;
var a = "5" ;
var b = "15" ;
// console.log("a>b是真的还是假的",a>b);
// console.log(a += 1);
console.log(b.codePointAt());
console.log(a<b);
结果为false,主要还是因为字符串5,比字符串15在acall码表中对应的值大。
各种运算符的优先级问题:
运算符 描述
. [] () 字段访问、数组下标、函数调用以及表达式分组
++ -- - ~ ! 一元运算符、返回数据类型、对象创建、未定义值
* / % 乘法、除法、取模
+ - + 加法、减法、字符串连接
<< >> >>> 移位
< <= > >= instanceof 小于、小于等于、大于、大于等于、instanceof
== != === !== 等于、不等于、严格相等、非严格相等
& 按位与
^ 按位异或
| 按位或
&& 逻辑与
|| 逻辑或
?: 条件
= oP= 赋值、运算赋值
, 多重求值
从上到下优先级依次降低。
算数运算符>比较运算符>逻辑运算符