js基础知识之数据类型

* Js有哪些数据类型?

Js虽然没有类的概念,但依然存在两种类型;
原始类型和引用类型

  1. 原始类型
    原始类型用于保存一些简单的单数据。
    js有5种原始类型: boolean number string null undefined
    前三种表现的行为类似,后两个有一点区别。
    鉴别原始类型的方法: typeof
    虽然字符串/数字/布尔是原始类型 但是他们也有方法
console.log(typeof null) // object null是一个空对象指针
console.log(value === null) // 判断一个值是否为空
console.log(undefined == null) // true
console.log(undefined === null) // false
var str = ‘aabbcc’
str.toLowerCase() // 转换为大些
str.charAt(0) // 获取第一个字符
str.substrin(2,5) // 2-4不包含结尾
// number
var a = 10
a.toFixed(2) // 10.00
a.toString(16) // a
// boobean
var b = true
b.toString(); // 'true'

  1. 引用类型
    引用类型是指js中的对象,同时也是你在该语言中能找到最接近类的东西。引用值是引用类型的实例,也是对象的同义词。
    函数其实是一个引用值,除了函数可以运行以为,一个包含数组的属性和一个包含函数的属性没什么区别。
    js中创建对象有几种方式?
    第一种是使用new操作符和构造函数,构造函数就是通过new 创建的对象的函数-- 任何函数都可以是构造函数。
    构造函数首字母要大写,用于区分非构造函数。
    第二种 字面形式 对象和数组字面形式
var obj = {x:1}
var arr = [12,3]

第三种 函数字面形式

function fn (val) { return val }
var reflect = new Function('val', 'return value')

第四种 正则表达式字面形式

var num = /\d+/g
var nums = new RegExp("\\d+", g)

鉴别引用类型
函数是最容易鉴别的引用类型 因为对函数使用typeof操作符 返回值是 ‘function’;
而对其他引用类型鉴别总是返回object,可以使用instanceof操作符解决

function fn() {}
console.log(typeof ab) // 'function'
var arr = []
var obj = {}
console.log(typeof arr) // 'object'
console.log(fn instanceof Function) // true
console.log(fn instanceof Object) // true
console.log(arr instanceof Array) // true
console.log(obj instanceof Object) // true
console.log(Array.isArray(arr)) // true 鉴别数组的最佳方式

原始封装类型啥 在读到一个字符串/数组/boolean时会自动创建,也就是如字符串拥有的原生方法
str = new String('aaf'),str.last,str.charAt(0)
new Number(10) new Boolean(false)
typeof 都为 ‘object’

var sobj = new String('haha')
typeof sobj // object
sobj instanceof Object // true
sobj instanceof String // true
var str = 'haha' // 不属于原始封装类型 临时对象仅在被读取时创建
typeof str // string
str instanceof String // false
str instanceof Object // false

你可能感兴趣的:(javascript前端)