Javascript(2)

 强制类型转换
 	-指将一个类型强制转换为其他的数据类型
 	-类型转换主要指将其他的数据类型转换为String Number Boolean
其他的数据类型转换为 **String**
	1.调用被转换数据类型的 toString()方法---不会影响到原变量,它会将转换的结果返回
	var  a=13;
	//调用a的toString()的方法
	a=a.toString();	
	console.log(typeof a); 
	console.log(a); 
注意:
	-nullundefined 这两个值没有 toString()方法。
如果调用,会报错。
	2.调用 String()函数,并将被转换的数据作为参数传递给函数
	a=123; 
	String(a);//将a转换为字符串  或者a=a.String(a);
注意:
	-对于 Number 和 Boolean 而言,本质上就是调用 toString()方法。
	-但是对于 nullundefined,则不会调用 toString()方法。它会将 null 直接转换为 "null"[字符串null]。将 undefined 直接转换为 "undefined"```

```javascript
将其他的数据类型转换为 Number:
	1.使用 Number() 函数
	var a="123";
	a=Number(a);//将a转换为Number类型
	console.log(typeof a); 
	console.log(a); 

字符串 --> 数字:
	-如果字符串中是纯数字,则直接将其转换为数字。
	-如果字符串中有**非数字**的内容,则转换为 NaN-如果字符串是一个空串或者是一个全是空格的字符串,则转换为 0。

布尔 --> 数字:
	true 转成 1
	false 转成 0

null --> 数字 0

undefined --> 数字 NaN

	2.这种方式专门来对付字符串
		-parseInt()把一个字符串转换为一个整数
			var a = '123px';
			a= parseInt(a; //将一个有效字符串的有效的**整数**内容取出来转为Number类型
			console.log(typeof a); 
			console.log(a); //打印结果:123
	
	-arseFloat()把一个字符串转换为一个浮点数
		-parseFloat()parseInt()的作用类似,不同的是,parseFloat()可以获得有效的小数部分。
			var a = '123.456.789px';
			a=aparseFloat(a);
			console.log(a); // 打印结果123.456
		-如果对非 String使用 parseInt()parseFloat(),它会先将其转换为 String, 然后再操作
			a = true;
			a=parseInt(a);
			console.log(a); //打印结果:NaN

在js中,如果需要表示16进制的数字,则需要以0x开头
	a=0x10;
	a=0xff;
	console.log(a);
如果需要表示8进制的数字,则需要以0开头
	a=070;
如果需要表示2进制的数字,则需要以0b开头(部分浏览器支持)
	a=0b10;
注意:
	//像“070”这种字符串,有些浏览器会将 a 当成 8 进制 解析,有些会当成 10 进行解析
	a="070"
	//可以在parseInt()中传递一个第二个参数,来指定数字的进制
	a=parseInt(a,8);
将其他的数据类型转换为 **Boolean**类型:
	1.使用Boolean()函数
		var a=123;
		a = Boolean(a);/专换为布尔值
		console.log(typeof a); 
		console.log(a); // 打印结果:true
-数字 --> 布尔。
	除了 0NaN,其余的都是 true-字符串 --> 布尔。
	除了空串,其余的都是 true-nullundefined 都会转换为 false-对象也会转换为true	
	2.隐式转换类型:
		-为任意的数据类型做两次非运算,即可将其转换为布尔值
		如: var = "hello";
			 a = !!a;//true
运算符:也叫操作符。---通过运算符可以对一个或多个值进行运算,并获取运算结果。
比如:typeof 就是运算符,可以来获得一个值的类型。---它会将该值的类型以**字符串**的形式返回,返回值可以是 number、string、boolean、undefined、object。
	var a=123;
	var result = typeof a;
	console.log(typeof result);//打印结果为:string



算术运算符:
+ ---如果对两个字符串进行****运算,则会做拼串,会将两个字符串拼接
	-当对非Number类型的值进行运算时,会将这些值转换为Number然后再运算
		result = true + false//1+0
		console.log(result);//打印结果为:1
	-任何值和NaN做运算都得NaN
	-任何的值和**字符串**加法运算,都会先转换为字符串,然后再和字符串做拼串的操作
		result = 123 + "1";
		console.log(result);//打印结果为:1231
		·我们可以利用这一特点,来将一个任意的数据类型转换为String
		·我们只需要为任意的数据类型 + 一个""即可将其转换为String
		·这是一种**隐式**的类型转换,由浏览器自动完成,实际上它也是调用String()函数

任何值做 -*/% 运算时会自动转换为Number
	 -我们可以利用这一特点做**隐式**的类型转换
	 -可以通过一个值-0 *1 /1 来将其转换为Number
	 -原理和 Number()函数一样,使用起来更加简单
%---取模运算(取余数)

一元运算符 --- 只需要一个操作数。
+	正号 ---正号不会对数字产生任何影响。
-	负号 ---可以对数字进行取反
	·对于非Number类型的值进行运算时,会将这些值转换为Number然后再运算
	·可以对一个其他的数据类型使用+ ,来将其转换为Number
		var result = 1 + + "2" + 3;
		console.log(result);//打印结果:6
	·使用原理和 Number()函数一样

自增 ++ ---通过自增可以使变量在自身的基础上增加1
	-对于一个变量自增后,原变量的值会立即自增1
	-自增分两种,后++(a++)和前++++a)
	-不同的是:a++++a的值不同
		a++ 的值等于原变量的值(a自增前的值)
		++a 的值等于新值 (a自增后的值)
			
	var a=10;
	a++;//a自增1
	console.log(a++);//打印结果:11

自减 --  ---通过自减可以使变量在自身的基础上减1
(原理同自增一样)
例:var n1 = 10;
	var n2 = 20;
	var n = n1++;// n1++ = 10	n1 = 11
	console.log('n='+n); // 10
	console.log('n1='+n1); // 11
	n = ++n1;//n1 = 12
	console.log('n='+n); //12
	console.log('n1='+n1); //12
	var n = n2--;//n2-- = 20	n2 = 19 	
	console.log('n='+n); // 20
	console.log('n2='+n2); // 19
	n= --n2;//--n2=18	n2=18 
	console.log('n='+n); // 18
	console.log('n2='+n2); // 18

逻辑运算符:
JS中为我们提供了三种逻辑运算符
- !---对一个布尔值进行取反操作。
		·truefalsefalsetrue
		·如果对一个值进行两次取反,它不会变化
		·如果对**非布尔值**进行非运算时,会先将其转换为**布尔值**,然后再运算,但返回结果是布尔值。
			let b = 10;
			b = !b
			console.log(b);  // false
			console.log(typeof b); // boolean
		·故我们可以利用该特点,来将一个其他的数据类型转换为布尔值
		·可以为一个任意数据类型取两次反,来将其转换为布尔值
		·原理和 Boolean()函数一样

- && 与:---可以对符号两侧的值进行与运算并返回结果
	(两个都为真,结果才为真)
		-两个值中只要有一个值为false就返回false
		 两个值中都为true,才返回true
		-JS中的&&属于短路的与:
			如果第一个值为false,则不会执行后面的内容。
			如果第一个值为 true,则继续执行第二条语句,并返回第二个值。
		
- || 或:---只要有一个是真,结果就为真。
		-两个值中只要有一个值为true就返回true
		 两个值中都为false,则返回false
		-JS中的||属于短路的或:
			如果第一个值为true,则不会执行后面的内容。
			如果第一个值为 false,则继续执行第二条语句,并返回第二个值。

&& || 非布尔值的情况
	-对于非布尔值的与或运算时,会先将其转换为布尔值,然后再运算,但返回结果是原值
	var result = 5 && 6; //true && true;  
	-与运算:如果两个值都为true,则返回后边的 
	console.log('result:' + result); // 打印结果:6
	
-与运算:如果两个值都为true,则返回后边的值 
		如果两个值有false,则返回靠前的值
		如果第一个值为false,则直接返回第一个值
		如果第一个值为true,则必然返回第二个值

-或运算:如果第一个值为true,则直接返回第一个值
		如果第一个值为false,则返回第二个值				  
		如果两个值都为false,则返回的是最后一个值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值