强制转换与运算符、++与--

强制类型转换

强制类型转换
- 指将一个数据类型强制转换为其他的数据类型
- 类型转换主要指,将其他的数据类型,转换为
String Number Boolean
将其他的数据类型转换为String
方式一:
- 调用被转换数据类型的toString()方法
- 该方法不会影响到原变量,它会将转换的结果返回
- 但是注意:null和undefined这两个值没有toString()方法,
如果调用他们的方法,会报错

//调用a的toString()方法
			//调用xxx的yyy()方法,就是xxx.yyy()
			a = a.toString();

方式二:
- 调用String()函数,并将被转换的数据作为参数传递给函数
- 使用String()函数做强制类型转换时,
对于Number和Boolean实际上就是调用的toString()方法
但是对于null和undefined,就不会调用toString()方法
它会将 null 直接转换为 “null”
将 undefined 直接转换为 “undefined”

//调用String()函数,来将a转换为字符串
			a = String(a);

将其他的数据类型转换为Number
转换方式一:
使用Number()函数
- 字符串 --> 数字
1.如果是纯数字的字符串,则直接将其转换为数字
2.如果字符串中有非数字的内容,则转换为NaN
3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
- 布尔 --> 数字
true 转成 1
false 转成 0
- null --> 数字 0
- undefined --> 数字 NaN
转换方式二:
- 这种方式专门用来对付字符串
- parseInt() 把一个字符串转换为一个整数
- parseFloat() 把一个字符串转换为一个浮点数
调用Number()函数来将a转换为Number类型

a = Number(a);

调用parseInt()函数将a转换为Number

a = "123567a567px";
a = parseInt(a);

parseInt()可以将一个字符串中的有效的整数内容去出来, 然后转换为Number
parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数

a = "123.456.789px";
a = parseFloat(a);

如果对非String使用parseInt()或parseFloat()它会先将其转换为String然后在操作

a = true;
a = parseInt(a);   //true-->"true"-->NaN

将其他的数据类型转换为Boolean
- 使用Boolean()函数
- 数字 —> 布尔
- 除了0和NaN,其余的都是true
- 字符串 —> 布尔
- 除了空串,其余的都是true
- null和undefined都会转换为false
- 对象也会转换为true

var a = 123; //true
			a = -123; //true
			a = 0; //false
			a = Infinity; //true
			a = NaN; //false
			
			//调用Boolean()函数来将a转换为布尔值
			a = Boolean(a);
			
			a = " ";//false
			
			a = Boolean(a);
			
			a = null; //false
			a = Boolean(a);
			
			a = undefined; //false
			a = Boolean(a);

其他进制的数字

在js中,如果需要表示16进制的数字,则需要以0x开头
如果需要表示8进制的数字,则需要以0开头
如果要要表示2进制的数字,则需要以0b开头
但是不是所有的浏览器都支持

//十六进制
			a = 0x10;
			a = 0xff;
			a = 0xCafe;
			
			//八进制数字
			a = 070;
			
			//二进制数字
			a = 0b10;
			//像"070"这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析
			a = "070";
可以在parseInt()中传递一个第二个参数,来指定数字的进制
			a = parseInt(a,10);

运算符

运算符也叫操作符
通过运算符可以对一个或多个值进行运算,并获取运算结果
比如:typeof就是运算符,可以来获得一个值的类型
它会将该值的类型以字符串的形式返回
number string boolean undefined object
算数运算符
当对非Number类型的值进行运算时,会将这些值转换为Number然后在运算
任何值和NaN做运算都得NaN

		  		+
		  			+可以对两个值进行加法运算,并将结果返回
		  			 如果对两个字符串进行加法运算,则会做拼串
		  				会将两个字符串拼接为一个字符串,并返回
		  			任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作
		  		-
		  			- 可以对两个值进行减法运算,并将结果返回
		  
		  		*
		  			* 可以对两个值进行乘法运算
		  		/
		  			/ 可以对两个值进行除法运算
		  		%
		  			% 取模运算(取余数)
            result = 456 + 789;
			
			result = true + 1;//true转化为1参与运算
			
			result = true + false;//1(true)+0(false)
			
			result = 2 + null;//2+0(null)
			
			result = 2 + NaN;//NaN

任何值和字符串相加都会转换为字符串,并做拼串操作

我们可以利用这一特点,来将一个任意的数据类型转换为String
我们只需要为任意的数据类型 + 一个 “” 即可将其转换为String
这是一种隐式的类型转换,由浏览器自动完成,实际上它也是调用String()函数

result = "你好" + "大帅哥";//字符串拼接:"你好大帅哥"

任何值做- 运算时都会自动转换为Number
我们可以利用这一特点做隐式的类型转换
可以通过为一个值 -0 *1 /1来将其转换为Number
原理和Number()函数一样,使用起来更加简单
一元运算符,只需要一个操作数
+ 正号
- 正号不会对数字产生任何影响
- 负号
- 负号可以对数字进行负号的取反
- 对于非Number类型的值,
它会将先转换为Number,然后在运算
可以对一个其他的数据类型使用+,来将其转换为number
它的原理和Number()函数一样
自增 ++
- 通过自增可以使变量在自身的基础上增加1
- 对于一个变量自增以后,原变量的值会立即自增1
- 自增分成两种:后++(a++) 和 前++(++a)
无论是a++ 还是 ++a,都会立即使原变量的值自增1
不同的是a++ 和 ++a的值不同
a++的值等于原变量的值(自增前的值)
++a的值等于新值 (自增后的值)
自减 –
- 通过自减可以使变量在自身的基础上减1
- 自减分成两种:后–(a–) 和 前–(--a)
无论是a-- 还是 --a 都会立即使原变量的值自减1
不同的是a-- 和 --a的值不同
a-- 是变量的原值 (自减前的值)
–a 是变量的新值 (自减以后的值)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值