2020-11-20 JS复习阶段第二天

1、强制类型的转换
强制类型转换指将一个数据类型转换为其他的数据类型,类型转换主要是指将其他数据类型转换为String、Boolean、Number。

1.1 将其他类型转换为String(字符串)

①调用被转换数据类型的toString()方法,该方法不会影响到原变量,它会将转换的结果返回。

var a=123;
a=a.toSring();
alert(typeof a);
alert(a);
上面代码的输出结果为 string ;“123”;

注意:null和undefined是没有toString()方法。

②调用String()函数,并将被转换的数据类型作为参数传递给函数

var a=123;
a=String(a);
alert(typeof a);
alert(a);
上面代码的输出结果为 string;“123”;

使用String()函数做强制转换类型时,对于Number和Boolean实际上是相当于调用了toString()的方法,但是对于Null和Undefined是直接将null转换为"null",undefined是直接转换为"undefined"。

③在做任意数据类型转换为String类型时,我们需要将任意的数据类型加一个空串,即可将其转换为String类型,这是一种隐式的转换类型。

var a=123+"";
alert(typeof a);
alert(a);
上面输出的结果为 string;“123”;

1.2 将其他数据类型转换为Number(数值)
①使用Number()函数

var a=“123”;
a=Number(a);
alert(typeof a);
alert(a);
上面代码输出的结果为 number;123;

转换的情况如下:
1)字符串—>数值
a.如果是纯数字的字符串,则直接将其转换为数值;
b.如果字符串中有非数字内容,则转换为NaN;
c.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0.

2)布尔值—>数值
a. true转为1;
b. false转为0.

3)Null—>数值:转换结果为0.

4)Undefined—>数值:转换结果为NaN.

②使用parseInt()和parseFloat()来转换为数值
注意:这种转换方式是专门用来对付字符串的
parseInt():把一个字符串转换为整数;
parseFloat():把一个字符串转换为浮点数。

var a=“123px”;
a=parseInt(a);
alert(typeof a);
alert(a);
上面代码输出的结果为 number;123;

1)parseInt()可以将一个字符串中有效的整数内容取出来,然后转换为Number类型(从左到右取出);
2)parseFloat()和parseInt()的作用类似,不同的是parseFloat()可以获取有效的浮点数。

注意:如果对非字符串的使用parseInt()和parseFloat(),它会想将其转换为String类型,再进行操作。

③任意类型的数据做-、*、/运算时都会自动转换为Number,可以通过利用这一特点,做隐式数据类型转换,可以通过-0、*1、/1来将其转换为Number类型。

var a=“123”;
var a=a-0;
var a=a*1;
var a=a/1;
alert(typeof a);
alert(a);
上面代码输出的结果为 number;123;

④对于非Number类型的值,可以将在非Number类型的值前面加一个加号,使其转换为Number类型。

var a=“123”;
var a=+a;
alert(typeof a);
alert(a);
上面代码输出的结果为 number;123;

1.3 将其他数据类型转换为Boolean(布尔值)
①使用Boolean()函数

var a=123;
a=Boolean(a);
alert(typeof a);
alert(a);
上面代码输出的结果为 boolean;true;

1)数值—>布尔值:除了0和NaN为false,其余都为true;
2)字符串—>布尔值:除了空串为false,其余都为true;
3)null—>布尔值:转换为false;
4)undefined—>布尔值:转换为false;
5)object—>布尔值:转换为true。

②对于非布尔值进行运算,会先将其它数据类型转换为布尔值类型,可以为一个任意数据类型取两次反,将其转换为布尔值类型。

var a=123;
a=!!a;
alert(typeof a);
alert(a);
上面代码的输出结果为 boolean;true;

2、运算符
通过运算符可以对一个或多个值进行运算,并获取运算结果返回。

2.1 算术运算符
①+:+可以对两个值进行加法运算,并将其结果返回

特例:
var a=“123”;
var b=“456”;
var result=a+b;
alert(result);
上面代码的输出结果为 “123456”;

如果将两个字符串进行加法运算,则会做拼串,会将两个字符串拼接为一个字符串,并将其结果返回。

注意:任何的值与字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串操作。

例子:
var result=“123”+1;
alert(result);
上面代码的输出结果为 “1231”;

练习一:
var result1=1+2+“3”;
alert(result1);
上面代码的输出结果为 “33”;

练习二
var result2=“1”+“2”+3;
alert(result2);
上面代码的输出结果为 “123”;

②-:-可以对两个值进行减法运算,并将结果返回。

var a=“99”-1;
alert(a);
上面代码的输出结果为 98;

注意:除了字符串加法是转换为字符串进行运算的,其余的运算都是转换为Number类型进行运算。

③* / %
*:可以对两个值进行乘法运算;
/:可以对两个值进行除法运算;
%:取模运算(取余数)

取模运算例子:
var a=123;
var b=“6”;
var result=a%b;
alert(result);
上面代码的输出结果为 3;

3、自增和自减

①通过自增可以使变量在自身基础上加1,对变量自增以后,原变量的值会加1;
自增的类型可分为 后++(a++)和 前++(++a):a++的值等于原变量的值(自增前的值),++a的值等于原变量的新值(自增后的值);

②通过自减可以使变量在自身基础上减1;
自减的类型可分为 后–(a–)和 前–(--a):a–的值等于原变量的值(自增前的值),–a的值等于原变量的新值(自增后的值);

自增练习
var n1=10,n2=20;
var n=n1++;
console.log(“n=”+n); //n=10;
console.log(“n1=”+n1); //n1=11;
n=++n1;
console.log(“n=”+n);//n=12;
console.log(“n1=”+n1);//n1=12;
n=n2–;
console.log(“n=”+n);//n=20;
console.log(“n2=”+n2);//n2=19;
n=–n2;
console.log(“n=”+n);//n=18;
console.log(“n2=”+n2);//n2=18;

4、逻辑运算符
JS中有三种逻辑运算符
①!(非):可以对一个值进行非运算

var a=true;
a=!a;
alert(a);
上面代码输出的结果为 false;

②&&(与):可以对符号两侧的值进行运算,并返回结果。
总结:
1)如果符号两侧的值都为true,才会返回true;符号两侧的值只要有一个false,返回false。
2)JS中的与运算属于短路与,如果第一个值为false,则不会再看第二个值。

③||(或):可以对符号两侧进行或运算,并返回结果。
总结:
1)如果符号两侧值只要有一个true,就返回true;符号两侧的值都为false,才返回false。
2)JS中的或运算属于短路的或,如果第一个值为true,则不会再看第二个值。

④&&和|| 非布尔值的情况
对于非布尔值进行与、或运算时,会先将其转换为布尔值类型,再进行运算,并且返回原值。

与运算例子:

(1)// true && true
var result =1 && 2; //输出的值为2
(2)// false && true
var result =0 && 1; //输出的值为0
(3)// false && false;
var result = NaN && 0;//输出的结果为NaN

与运算总结:
1)如果第一个值为true,则返回第二个值;
2)如果第一个值为false,则返回第一个值;

或运算例子:

(1) // true || true
var result = 1 || 2; //输出的值为1
(2)// false || true/false;
var result = NaN || 0;//输出的值为0

或运算总结:
1)如果第一个值为true,则返回第一个值;
2)如果第一个值为false,则返回第二个值;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值