js基础之数据类型

前端在整个系统中,一直都扮演着举足轻重角色。没有前端整个系统就无法运行,没有后台,就如同一滩死水无法运作。前端和后端,谁也离不了谁。前端整个基础知识架构,css/html/javascript,整个前端知识的基础。今天这一专栏,我将为大家介绍一下前端三剑客之javascript的基本数据类型,我这篇文章,仅为菜鸟提供一个学习的通道,如有知识误区或错误,望即时指出,我将及时修改,以免误导他人。

本节关键点介绍基本数据类型,其中也会穿插一些其他的语句运用,在其他语言中,也能用到不详细讲。

javascript数据类型,有六种数据类型,其中包括五种基本数据类型,六种数据类型种有:string/number/undefined/function/boolean/object;而五种基本数据类型:string/number/undefined/boolean/null。讲它之前,我为大家安利一个能检测数据类型的一个方法:typeof,他能将基本数据类型给区分开,当然它也有缺陷,就是将object类型和arrary给区分开。其实还有一个方法isInstanceOf它也是一款运算操作符,我们来区别一下,他们的差别吧。

instanceof,他是用来判断这个是属于哪个类型,返回布尔值;

var a  = 123456
console.log(a instanceof Number)//true

既然说到 instanceof,就谈谈与它密切相关的,判断数组的方法。instanceof是一种,接下来为大家介绍几种有关数组判别的方式。

(1)构造函数判别式:

var a = [1,2,3,4]
console.log(a.constructor == Array )

(2) isArrary判别式;

var a = [1,2,3,4]

console.log(Array.isArray(a))

(3)Object.prototype判别;

var a = [1,2,3,4]

console.log(Object.prototype.toString.call(a))

接下来讲一下,typeof ,他是用来判断数据类型,返回数据类型;

console.log(typeof a)//number

javascript五大基本数据类型:null,undefined,number,string,boolean;在这五大基本数据类型,存在一些转换关系。

1.number类型转换string类型

var a = 123
	a += ''
	console.log(a)
console.log(typeof a) //string

上面是通过加一个空字符串,进行转换,还可以通过String()方法进行强制转换;

  var a = 123
	a = String(a);
	console.log(a)
        console.log(typeof a) //string

当然还有一种方法,可以进行进制的转换,他就是toString;

var a = 123
console.log(a.toString(8))//173
console.log(a.toString(2))//1111011

2.string转换成number类型;

可以通过操作符:-

var a = '123'
a -= 0 ;
console.log(a)

通过强制转换:Number

var a = '123'
	console.log(Number(a))

还有有必要介绍number类型中NaN;意识他不是一个数;

var a = 2-'我是不是'//a,NaN

进行强制转换,一个parseInt(a)和parseFloat(a)一个整型和浮点型。

parseInt可以传入两个参数:parseInt('123',8);表示8进制转换成10进制的运算关系。

var a = '23'
console.log(parseInt(a,8))//a是8进制数;
console.log(paseFloat(a))

在number类型的浮点型能精确到小数点后17位。

在加法中,计算出来的number类型数值,是浮点型;故

console.log(0.1+0.2==0.3)//false

'=='和‘===’区别:‘==’会存在类型的隐式转换,‘===’不存在。

var a = 123
console.log(a=='123')//true
console.log(a==='123')//false
console.log(0=='')//true
console.log(null == undefined)//true
console.log(0==null)//false
console.log(null=='')//false
console.log(null===undefined)//false
console.log(null===0)//false
console.log(null==false)//false

null空对象指针。

上面已经将隐式转换表达的很清晰,再解释一两个例子:

console.log(10+'20')//1020
number->string

console.log(20-'3')//17
string->number

console.log(11>'4')//true
string->number

接下来,讲一个在前端开发常用的语法操作,那你就看过来,例子这个时候就抛出来啦呀;

1.短路语法,使用了位操作符(&& 与 ||)

var u = 'null' || '';
console.log(u)//'null'
console.log('null'|| 123)//'null'
/*
*解释:谁的值存在就抛出谁,两个值都存在,抛出靠近等号的那个。
*
*/
	var u = null && '';
	console.log(!u)
/*
*这个是抛出第二个法则,靠近等号的值存在,就抛出第二个,
*谁的值为空就抛出谁
*/

2.三目运算符:简化if语句的判断,用于简单的逻辑判断,节约代码;

在现在前端比较流行的框架里用的比较多。

var a = flag==true?'我是':'不是'

这是精华所在。

3.i++和++i

一个叫后自加,和前自加。对于菜鸟来说,刚入门的人,还不是很清楚,他们具体区别,这里废话不多,直接用代码解释:

var a = 4;
var b = 20;
var c = a++ +b//24
var a = 4;
var b = 20;
var d = ++a +b//25

a++:表示计算完后再加1;

++a:表示先加1再计算;

故这就是他们最大的区别。

本来还有break和 continue 在循环语句使用,这两个关键字,不单单在js能用到,其他语言中c/c++/java都能用到,这里就不详细介绍。

最后来总结一下:这篇主要讲js的基本数据类型的之间的强制转换及隐式转换,开发中常用的一些简洁语法,这篇就介绍到这里为止。

参考文档:https://blog.csdn.net/aaa333qwe/article/details/80331153

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章