JavaScript学习笔记(一):强制类型转换和运算符

目录

一、强制数据转换

1. 将其他的数据类型转换为String

2. 将其他数据类型转换为Number

3. 其他进制的数字

4. 将其他数据类型转换为Boolean

二、运算符

1. 算数运算符

2. 一元运算符

3. 自增与自减

4. 逻辑运算符

5. 赋值运算符

6. 关系运算符

7. 输出unicode编码

8. 相等运算符

9. 条件运算符

10. 运算符的优先级


一、强制数据转换

1. 将其他的数据类型转换为String

方法一:

调用被转换数据类型的toString()方法。该方法不会影响到原变量,它会将转换的结果返回。但是注意:null和undefined这两个值没有toString()方法,如果调用会报错。

let a = 123;

let b = a.toString()

方法二:

调用String()函数。并将被转换的数据作为参数传递给函数。调用String()函数做强制类型转换时,对于null和undefined,会直接转换为"null"和"undefined"。

let a = 123;

a = String(a);

2. 将其他数据类型转换为Number

方法一:

使用Number()函数。字符串转数字:如果是纯数字的字符串,直接转换成数字;如果有非数字内容,则转换为NaN;如果是一个空串或全是空格,转换为0。布尔转数字:true为1,false为0。Null为0,indefined为NaN。

let a = "123";

a = Number(a);

方法二:

专门用来对付字符串:parseInt()和parseFloat()

parseInt()将字符串有效的整数部分取出来,然后转换成Number

parseFloat()与parseInt()类似,不同的是它取出有效的小数

如果对非String类型使用该方法,先将其转换为String,再进行操作。

let a = "123px";

a = parseInt(a);

3. 其他进制的数字

在js中,如果需要表示16进制的数字,则需要以0x开头;

8进制,0开头;

2进制,0b开头,但不是所有浏览器都支持。

let a = "070";

// parseInt()中的第二个参数表示要转换的进制
a = parseInt(a, 10)

4. 将其他数据类型转换为Boolean

使用Boolean()函数。

数字转布尔:除了0和NaN都是true

字符串转布尔:除了空串都是true

Null和undefined都会转换成fasle

对象也会转换成true

let a = 123;  // true

a = -123;  // true
a = 0;  // false

a = ""  // false
a = "1"  // true

a = Boolean(a);

二、运算符

运算符也叫操作符,通过运算符可以对一个或者多个值进行运算,并获取运算结果。

typeof  将值的类型以字符串的形式返回。

1. 算数运算符

当对非Number类型的值进行运算时,会将这些值转换成Number类型进行运算。任何数与NaN进行运算,结果都是NaN。两个字符串相加会进行拼接操作。

任何值与字符串相加,都会拼接成字符串。

可以利用这点将任意的数据类型加上一个空串来将其转换为String类型,这是一种隐式的类型转换,由浏览器自动完成,实际上也是调用的String()函数。

let a = 123;

a = a + "";

console.log(a);  // "123"
let result;

result = 1 + 2 + "3";  // "33"
result = "1" + 2 + 3;  // "123"

result = 100 - "1";  // 99

result = 2 * "8";  // 16

任何值做 - * / 运算时,都会自动转换为Number。

let a = "111";

a = a - 0;

console.log(a);  // 111

2. 一元运算符

只需要一个操作数。对于非Number的值,先转换成Number再进行运算。

可以对其他的数据类型使用+,来将其转换为Number类型。

let a = "234";

a = +a;

console.log(a);  // 234

3. 自增与自减

自增++:

通过自增可以使变量在自身基础上增加1, 对于一个变量自增以后,原变量的值会立即自增1.

自增分为前++和后++(a++和++a),无论是哪个都会使变量的值自增1,不同的是,a++的值等于原变量的值(自增前的值),++a的值等于原变量的值(自增后的值)。

let a = 1;

console.log(a++);  // 1

console.log(++a);  // 3

4. 逻辑运算符

!        非

对一个值进行非运算,即对一个布尔值进行取反操作。

可以为一个任意数据类型进行两次取反,将其转换为布尔值。

let a = 123;

a = !!a;

console.log(a);  // true

&&        与

&&可以对符号两侧的值进行与运算并返回结果。两个值中只要有一个为false就返回false。

||        或

||可以对符号两侧的值进行与运算并返回结果。两个值中只要有一个为true就返回true。

非布尔值的逻辑运算:

对于非布尔值进行与或运算时,会先将其转换为布尔值,然后再运算,最后返回原值。

与运算:

如果两个值都为true,则返回后边的;如果有false,则返回靠前的false。

如果第一个值为true,则返回第二个值;如果第一个值为false,则返回第一个值。

或运算:

如果第一个值为true,则返回第一个值;如果第一个值为false,则返回第二个值。

5. 赋值运算符

=

可以将符号右侧的值赋值给符号左侧的变量。

+=

a += 5等价于a = a + 5

6. 关系运算符

>  <  >=  <=

通过关系运算符可以比较两个值之间的大小关系,如果关系成立它会返回true,如果关系不成立则返回false。

对于非数值进行比较时,会先转换成数值再进行比较。

let result;

result = 1 >= true;  // true

result = 10 > null;  // true

result = "11" < "5";  // true

任何值与NaN做任何比较都是false。

比较两个字符串时,比较的时字符串的字符编码;比较字符串时是一位一位进行比较,如果两位一样,则比较下一位,所以借用它对英文进行排序。

注意:在比较两个字符串型的数字时,一定一定要转型。

7. 输出unicode编码

在字符串中使用转义字符\u进行Unicode编码。

console.log("\u2620");

在网页中使用Unicode编码:

&#编码;这里的编码需要十进制

<h1>&#9760;</h1>

8. 相等运算符

相等运算符用来比较两个值是否相等。

使用==来做相等运算。如果值的类型不同,会自动转换成相同的类型再进行比较。

console.log("1" == 1);  // true

console.log(true == "1");  // true

console.log(null == 0);  // false

// undefined衍生自null,这两个值做相等判断时,会返回true
console.log(undefined == null);  // true

// NaN不和任何值相等,包括本身
console.log(NaN == NaN);  // false

// 使用isNaN()判断值是否为NaN

使用!=做不相等运算。

=== 全等

用来判断两个值是否全等,如果两个值类型不同,直接返回false

console.log(123 === "123");  // false

!== 不全等

用来判断两个值是否不全等,和不等类似,不会做自动类型转换。

9. 条件运算符

条件也叫三元运算符

语法:

条件表达式?语句1:语句2;

条件运算符在执行时,首先对条件表达式进行求值,如果值为true,则执行语句1,并返回执行结果;如果值为false,则执行语句2,并返回执行结果。

let a = 10;
let b = 20;
let c = 30;

let max = a > b ? a : b;
let max = max > c ? max : c;

let max = a > b ? a > c ? a : c : b > c ? b : c;

如果条件表达式的运算结果不是布尔值,则会将其转换成布尔值。

10. 运算符的优先级

,        运算符

使用 , 可以分割多个语句,一般可以在声明多个变量时使用。

优先级越高越先运算,优先级一样自左向右运算。

 如果不清楚优先级,可以使用()来改变优先级。

学习的是B站尚硅谷的视频课程:

尚硅谷JavaScript基础&实战丨JS入门到精通全套完整版

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值