Web 前端开发 让前端飞js

JS数据类型

2019-10-15  本文已影响0人  Nice先生的狂想曲

前言

知识是无止境的,也是可以无限延伸的。就例如开始写js相关的文章后,我发布了对面向对象的解释和看法,然后延伸出其中较具代表的,之后想想还是说说数据类型

因此,本篇文章就是说数据类型的。


数据类型

转的图
symbol

symbol指 独一无二
示例:

  let s1 = Symbol('foo')
  let s2 = Symbol('foo')
  console.log(s1==s2);//false

Symbol.for

let s1 = Symbol.for('foo');
let s2 = Symbol.for('foo');
s1 === s2 // true

Symbol.for()与Symbol()这两种写法,都会生成新的 Symbol。它们的区别是,前者会被登记在全局环境中供搜索,后者不会。Symbol.for()不会每次调用就返回一个新的 Symbol 类型的值,而是会先检查给定的key是否已经存在,如果不存在才会新建一个值。

判断数据类型

      //封装
        var gettype=Object.prototype.toString 
        var utility={ 
         isObj:function(o){ 
           return gettype.call(o)=="[object Object]"; 
          }, 
          isArray:function(o){ 
            return gettype.call(o)=="[object Array]"; 
          }, 
          isNULL:function(o){ 
            return gettype.call(o)=="[object Null]"; 
          }, 
          isDocument:function(o){ 
            return gettype.call(o)=="[object Document]"|| '[object HTMLDocument]'; 
          } 
        }
NaN==NaN//false
NaN==Number//false
Number==typeof(NaN)//false

es6的Number类型有个Number.isNaN()方法可以判断

Number.isNaN(NaN)//true

常用数据类型转换

字符串转数字
字符串转数组
[...'hello'] //["h", "e", "l", "l", "o"]
let a="aaaabbb"
let b=a.split("") //["a", "a", "a", "a", "b", "b", "b"]
Array.of(3, 11, 8) // [3,11,8]
数组转字符串
  1. 利用replace正则表达式替换
let a="aaaabbb"
let b=[...a]
let c=b.join()//a,a,a,a,b,b,b
c.replace(/,/g,'')//利用/,/g取得所有的,并取代
上一篇 下一篇

猜你喜欢

热点阅读