让为大家介绍一下常用的数据类型吧!本人文笔有限,感谢大家的阅读!
我这篇文章尽量都写在了代码块里,我认为直接写理论不如让代码与解释写在一起,比如这个代码什么作用,是做什么的,这理论到底什么意思,到底是个怎么个用法,这样可以让大家更好的了解这块的基础知识
数据类型分为2大类:基本数据类型与引用数据类型
变量是什么数据类型呢?
js的变量数据类型只有程序在运行中,根据等号右边的取值来确定的
基本数据类型有:String(字符串) Number(数值) Boolean(布尔) Null(空) Undefined(未定义) Symbol(符号)这是ES6新增的类型
引用数据类型:Object(对象) 对象中包括了Array(数组) Function(函数) Date(日期) Math(数学)等
1.String
String是字符串类型,如"张三",注意咱们js里面,字符串都带引号
默认值:" "
代码介绍,比较详细:
// String是字符串类型 // 这就是一个字符串类型,记住需要加引号 // 单引号或者双引号都是可以的 var str = "张三" // 记住字符串里面要么是外双内单,要么就是外单内双 console.log("我是一个'男'生")//打印:我是一个'男'生 console.log('我是一个"男"生')//打印:我是一个"男"生 // 我们也可以检测数据类型,我们使用typeof console.log(typeof str)//打印:string // 字符串拼接,数值相加,字符相连 // 我现在有一个字符串 console.log("我今年" + 18)//打印字符串类型的:我今年18 // 字符串加上其他值都会被转换成字符串类型 // 让我为大家介绍一下转换成字符串类型的方法 // toString(),String(变量),+(加号)拼接(重点) var num = 18 // 开始转换 console.log(num.toString())//打印字符串类型的18 console.log(String(num))//打印字符串类型的18 console.log(num + "");//打印字符串类型的18 // 字符串长度(length) var str1 = "Hello World" console.log(str1.length)//11,字符串长度为11,空格也算
2.Number
Number是数字型,包含整型值和浮点型值,如21、0.21
默认值:0
代码介绍,比较详细:
// Number数字类型 // 这是一个数字类型,整型值和浮点型值都是Number类型 var num = 18//Number类型 var PI = 3.14//Number类型 // 检测数据类型typeof console.log(typeof 18)//返回number // 可以进行加减乘除运算 // 可以使用 +(加),-(减),*(乘),/(除),%(余数) // 类型转换 parseInt()整型 parseInt()浮点型 Number() 隐式转换 // 除了布尔类型与数字类型和字符串类型(需要是数字开头的字符串) // 其他类型转换成Number类型基本上都是NaN(非数字型)最后会介绍 //"3.14"是一个字符串类型,被parseInt转换成了number类型的整数 console.log(parseInt("3.14"))//不会四舍五入,打印3,number console.log(parseInt("5.5px"))//不会四舍五入,打印5,number // 字符串中只返回第一个数字,开头和结尾的空格是允许的,如果字符串的第一个字符不能被转换为数字 // 那么 parseFloat() 会返回 NaN。 // 如果是整数就输出整数,如果是小数就保留原来的部分 console.log(parseFloat(3.14))//3.14数字型 console.log(parseFloat("100px"))//100数字型 console.log(parseFloat("3"));//数字型的3 console.log(parseFloat("40 岁"))//打印数字型的40 // 再介绍一下parseFloat保留2位小数的用法,如果是整数就 整数.00 console.log(parseFloat(3.1415926).toFixed(2))//3.14 // 隐式转换,使用减乘除可以做到隐式转换 console.log("1" - 1)//0 NaN // Number()转换 console.log(Number("3.14"))//字符串类型转换成数字类型,打印3.14 // Number()方法只可以用在数字上,如"1",true(1),false(0),这种形式是可以的 console.log(Number(1+undefined));//NaN(非数字型)
我为大家再介绍一种特殊的数字类型
NaN(Not a Number)非数字型
// NaN是非数字型 // 我为大家介绍一种检测是否为数字型方法 // isNaN是否为非数字型,如果是数字型返回false,如果不是数字型返回true console.log(isNaN(1))//false console.log(isNaN("前端"))//true
3.Boolean
Boolean是布尔值类型,如true、false,等价于1 和 0
默认值:false
代码介绍,比较详细:
// Boolean布尔值,常用用于判断,true是真,false是假 var isTrue = true var isFalse = false//返回false,布尔型 console.log(isTrue)//返回true,布尔型 console.log(isFalse)//返回false,布尔型 // 检测数据类型使用typeof console.log(typeof true)//boolean类型,返回boolean console.log(typeof false)//boolean类型,返回boolean // 其他数据类型转换成布尔类型时 // 语法Boolean("true") // 代表空,否定的值会被转换为false,比如:0、NaN、null、undefined // 其余值都会被转换成true console.log(Boolean(""))//false console.log(Boolean(0))//false console.log(Boolean(NaN))//false console.log(Boolean(null))//false console.log(Boolean(undefined))//false console.log(Boolean("开心"))//true console.log(Boolean(12))//true // 判断if,如果为真执行代码,如果为假,继续找下一个代码,直到找到为真的代码 if(true) { console.log("我被输出了") } if(false) { console.log("继续往下寻找") }else if(true) { console.log("我被找到了"); }else if(true) { console.log("我被截胡了,没被执行"); }
4.Null
Null是空类型,var a = null,声明了变量a为空值
默认值:null
// null是空类型 var a = null//声明了变量,赋值为空 // 空的可玩性很大 var b = "我不是空" b = null console.log(b)//以前的值被覆盖了,为空 // 检测数据类型typeof,返回的是对象 console.log(typeof null)//返回oject
5.Undefined
Undefined是未定义类型,var a;声明了变量a,但没有赋值,此时a = undefined
默认值:undefined
// 声明了变量但没有赋值,此时输出为undefined var a console.log(a)//打印undefined // 检测数据类型使用typeof console.log(typeof a)//undefined类型,打印undefined // 大家以后如果碰到打印undefined,可能就是这个值没有取到
6.Object
Object是对象,可以理解为一种无序的数据集合
对象增删改查基础的用法:
https://blog.csdn.net/m0_74577714/article/details/132949198?spm=1001.2014.3001.5502
// object是引用数据类型 // 创建对象的2种方法 var obj = { // 记住用键值对的形式,记住要加逗号 name:"张三", age:18, // 是可以放函数的 sayHi :function(){ console.log("哈哈"); } } console.log(obj)//打印{name: '张三', age: 18, sayHi: ƒ} // 介绍另一种方法,构造对象 var obj1 = new Object() // 添加值进去 obj1.name = "李四" obj1.age = 18 console.log(obj1)//打印{name: '李四', age: 18} // 遍历对象的方法for..in for(var key in obj1){ console.log(obj[key])//获取到属性名:张三,18 } // typeof可以检测数据类型 console.log(typeof obj)//输出,ojbect console.log(obj === obj1)//在堆当中,他们的对象不是同一个对象,返回false
感谢大家的阅读,如有不对的地方,可以向我提出,感谢大家!