欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

第十一天H5进阶

程序员文章站 2022-09-02 21:53:19
运算符 - 一元运算符 + --> 相当于数学中的正号 - +号不会对数值产生影响 - --> 相当于数学中的符号 - -号可以对当前的数值取反 - 注意:...

运算符

- 一元运算符

+ --> 相当于数学中的正号

- +号不会对数值产生影响

- --> 相当于数学中的符号

- -号可以对当前的数值取反

- 注意:

-当对非数字进行一元加或减运算时,它会自动将值转型为Number类型

所以我们可以通过为一个变量添加一个+的形式将一个变量转换为Number类型

- 例子:

var str = "123"; // string

str = +str; //Number

- 自增和自减

- 自增,表示在原有值的基础自增1,比如:2自增一次以后变成3

-自增有两种:

- 前++ --> ++a;

- 后++ --> a++;

- 自减,表示在原有值的基础自减1,比如:2自减一次以后变成1

-自减有两种:

- 前-- --> --a;

- 后-- --> a--;

- 区别:

- 无论是前置的加加和后置的加加,调用以后原来的变量会立即自增1。

只不过前置的加加和后置的加加的本身的值是不同的,

后置++的值是原变量的值,

前置++的值是变量自增以后的值

- 例子:

例一:

var a = 123;

a++; //123

console.log(a); //124

例二:

var a = 123;

++a; //124

console.log(a); //124

- 自减亦如此,无论是前--还是后--,原变量的值都会自减1,

而前--的值是变量自减以后的值,后--是变量的原值。

var x=4;

x= x++ + ++x +x*10;

//x = 4 + 6 + 60

console.log(x);

- 逻辑运算符

- 非 !

- 使用非运算,可以对一个值进行取反操作。

- 如果对true进行非运算,则会变成false,如果对false进行非运算会变成true。

- 如果对一个非布尔类型的值进行非运算,则会先将其转换为布尔类型,在取反。

所以我们经常为一个非布尔类型的值取两次反,从而将其转换为一个布尔类型

- 例子:

var str = "hello"; //string

str = !!str; // boolean

- 与 &&

- 与可以对与符号两次的值进行与运算

- 如果两侧值都是true,则返回true --> true && true

- 如果两侧的值有false,就返回false --> false && true false && false

- JS中与是短路的与,一旦第一个值为false,则不会在看第二值,第二值如果是一个表达式,则不会执行。

- 对非布尔值也可以进行与运算,它会将非布尔值转换为布尔值,进行与运算,但是它会返回原值,而不是布尔值

- 如果两个值都为true,则返回第二个。

- 如果两个值中有false,则返回靠前的false。

- 或 ||

- 或可以对符合两侧的值进行或运算

- 如果两个值都为false,则返回false --> false || false

- 只要有一个true,则返回true --> false || true true || true

- JS中的或是一个短路的或,如果第一个值为true,则不会在去看第二个值。

- 对非布尔值也可以进行或运算,它会将非布尔值转换为布尔值,再进行或运算,但是它会返回原值,而不是布尔值

- 如果两个值都为false,则返回第二个

- 如果有true,则返回靠前的true

- 关系运算符

- 使用关系运算符可以比较两个变量之间的大小关系

- >

- 判断一个值是否大于另一个值

- >=

- 判断一个值是否大于或等于另一个值

- <

- 判断一个值是否小于另一个值

- <=

- 判断一个值是否小于或等于另一个值

注意:

- 如果是非数字的值进行比较时,它会将它们转换为数字然后在比较

- 如果是两个字符串进行比较,它不会将它们转换为数字,而是比较它们的字符编码

所以这里注意,可以能会出现不可预期的结果,尽量不要比较两个字符串的大小。

- 相等 ==

- 判断符号两侧值是否相等,如果相等则返回true,否则返回false

- 相等会对两侧值进行类型转换,如果转换后相等,它也会返回true

- 不等 !=

- 判断符号两侧值是否不等,如果不等返回true,否则返回false

- 不能也会自动对值进行类型转换,如果转换后相等,他也会返回false

- 全等 ===

- 判断符号两侧值是否全等,和相等类似,只不过全等不会自动转换类型

如果比较的两个值类型不同,直接返回false。

- 全不等 !==

- 判断符号两侧的值是否全不能,和不等类型,只不过全不等不会自动类型转换,

如果比较的两个值的类型不同,直接返回true。

- 注意:

1.undefined值衍生自null值,所以做相等判断时会返回true,全等时会返回false

2.NaN不与任何相等包括它本身,NaN == NaN --> false

- 可以通过isNaN()来判断一个值是否是NaN,

如果是它会返回true,否则返回false。

- 赋值运算符:

=

+=

- 例子:

var a = 123;

a += 5; // a = a+5;

-=

*=

/=

- 例子

var a = 9;

a /= 3 ; //a = a/3;

%=

- 赋值运算符可以将符号右侧的值,赋值给左侧的变量

- 条件运算符(三元运算符,三目运算符)

语法:

表达式1?表达式2:表达式3

- 执行顺序:

1.先执行表达式1,

2.根据表达式1的执行结果来决定执行表达式2还是3

如果表达式1的执行结果为true,则执行表达式2,并将结果返回。

如果表达式1的执行结果为false,则执行表达式3,并将结果返回。

- 优先级:

- 在JS中使用运算符中会有一个执行的顺序问题,优先级高的会先运算,低的后运算。

- 实际上和数学中是基本一致的比如:先乘除、后加减

- 我们有一个运算符的优先级的表,表格中的内容,越靠上优先级越高,优先级越高越先执行

优先级相同的,按照从左往右的顺序执行,但是这个表中的内容不需要记忆,

不清楚的时候,使用小括号来改变优先级!

- 隐式的类型类型转换

- 其他类型转换为String

- 变量 = 变量+"";

- 任何数据和字符串进行加法运算,都会转换为字符串,然后做拼串操作

- 底层也是使用的String()

- 其他类型转换为Number

- 变量 = +变量;

- 使用一元的加会使变量自动转型为Number类型

- 底层也是使用的Number()

- 其他类型转换为Boolean

- 变量 = !!变量;

- 我们可以为一个变量做两次取反操作,来使其变为Boolean

- 底层也是使用的Boolean()