JavaScript日记(二)基础知识

目录

强制类型转换:

算数运算符(运算符也叫操作符):

一元运算符:


(接上篇)

Boolean:布尔值,只有true和false两个值

Null:空值,使用typeof检查null值时会返回object

Undefined:未定义,当声明一个变量,但是并不给变量赋值时,它的值就是undefined,使用typeof检查时会返回undefined

Object:对象

前五种属于基本数据类型,Object属于引用数据类型

强制类型转换:

指将一个数据类型强制转换为其他的数据类型

类型转换主要指将其他的数据类型转换为String Number Boolean

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

方式一:调用被转换数据类型的toString()方法,但是注意:null和undefined这两个值没有toString()方法

var a=123;
a.toString();  //该方法不会影响原变量,只会将转换的结果返回,a依旧是number类型
//a=a.toString();  a变为string类型

方式二:调用String函数,并将被转换的数据作为参数传递给函数,对于Number和Boolean实际上就是调用的toString()方法

var a=123;
String(a);  //a依旧是number类型
//a=String(a);  a变为string类型

对于null和undefined,它会直接转换为“null”和“undefined”

var a=null;
a=String(a);  //a变为string类型,值为“null”

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

方式一:使用Number()函数

字符串转换为数字类型时,如果是纯数字字符串,则直接将其转换为数字

var a=”123”;
a=Number(a);  //a变为number类型

如果字符串中有非数字的内容(例如字母),则转换为NaN

var a=”123abc”;
a=Number(a);  //a变为number类型,值为“NaN”

如果字符串为空,则转换为0

var a=” ”;
a=Number(a);  //a变为number类型,值为“0”

布尔类型转换为数字类型时,如果值为true则变为1

var a=true;
a=Number(a);  //a变为number类型,值为“1”

如果值为false则变为0

var a=false;
a=Number(a);  //a变为number类型,值为“0”

Null转换为数字类型时,值变为0

Undefined转换为数字类型时,值变为“NaN”

方式二(针对字符串):

parseInt()将字符串中有效的整数取出,转换为Number(也可用于浮点数取整)

var a=”123.123px123px”;
a=parseInt(a);  //a的类型变为number,值为“123”,读到非数字字符时停止

parseFloat()将字符串中有效的浮点数取出,转换为Number

var a=”123.123.123px”;
a=parseFloat(a);  //a的类型变为Number,值为“123.123”

对非String类型使用这两个函数,会先将其转换为String,然后再操作

其他进制的数字:

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

var a=0x10;  //十六进制的10输出为十进制,值为16

在JS中,如果需要表示8进制的数字,则需要以0开头

var a=070;  //八进制的70输出为十进制,值为56

在JS中,如果需要表示2进制的数字,则需要以0b开头,但不是所有浏览器都支持。像“070”这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析。在强制类型转换时,可以在parseInt()中传递第二个参数来指定数字的进制。

var a=”070”;
a=parseInt(a,10);  //作为十进制转换,a的值为70
a=parseInt(a,8);   //作为八进制转换,a的值为56

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

方式一:

使用Boolean()函数,数字转换为布尔类型时,除了0和NaN为false,其余都为true

字符串转换为布尔类型,除了空串(空格不是空串)为false,其余都是true

null和undefined转换为布尔类型都是false,对象会转换为true

算数运算符(运算符也叫操作符):

当对非Number类型的值进行运算时,会将这些值转换为Number然后再运算,true为1,false为0,null为0,任何值与NaN(undefined)做运算都得NaN

加法+:

如果对两个字符串进行加法运算,则会将两个字符串拼接为一个字符串

var a=”123”+”456”;  //a的值为123456

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

var a=123+”1”;  //a的值为1231
var b=true+”hello”;  //b的值为truehello
var c=123+””;  //c的值为123,此方法也可以用于将任一数据类型转换为String,这是一种隐式的类型转换,实际上它也是调用的String()
var d=1+2+”3”;  //d的值为33,程序从前向后读,读到引号时才会进行拼接
var e=”1”+2+3;  //e的值为123

减法-,乘法*,除法/:

任何数值与字符串做减法运算,都会先转换为数值,然后再相减

var a=100-”1”;  //a的值为99,与加法不同

任何值运算时都会自动转换为Number

var a=2*”8”;  //a的值为16
var b=123-”0”;  //b的值为123,类型为number,与加法类似,我们也可以通过“-0”、“*1”、“/1”进行隐式类型转换

取模%(取余):

var a=9%4;  //a的值为1

一元运算符:

正号+  负号-  

对于非Number类型的值,会先将其转换为Number,然后再运算

var a=true;
a=-a;  //a的值为-1;

可以对其他数据类型使用“+”,将其转换为number,原理与Number()相同

var a=18;
a=+a;  //a的类型为number
var b=1++”2”+3;  //b的值为6

自增++  自减--

可以影响原变量的运算符

a++的值等于原变量的值,++a的值等于新值,自减类似

var a=1;
a++;  //a的值变为2,a++的值为1
var b=1;
++b;  //b的值变为2,++b的值为2
var c=20;
var d=c++  +  ++c  +  c;  //d=20+22+22

(作者观看的学习视频:B站尚硅谷)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值