javascript数据类型

数据类型的分类
  • 种类
    • 数值,number,整数和小数
    • 字符串,string,字符组成的文本
    • 布尔值,boolean,true 和 false 两个特定值
    • undefined,表示"未定义"或不存在,即此处目前没有任何值
    • null,表示空缺,即此处应该有一个值,但目前为空
    • object,表示对象,各种值组成的集合
  • 原始类型和复杂类型
    • 原始类型(primitive type):数值,字符串,布尔值
    • 复杂类型(complex type):对象
    • 区别
      • 基本类型变量存的是值,复杂类型的变量存的是内存地址
      • 基本类型在赋值的时候拷贝值,复杂类型在赋值的时候只拷贝地址,不拷贝值
  • 对象的细分
    • 狭义的对象(object)
    • 数组(array)
    • 函数(function)
    • 正则表达式(regexp)
数据类型区分的方法
  • 三种方法
    • typeof 运算符
    • instanceof 运算符
    • Objcet.prototype.toString 方法
  • typeofinstanceof
    • typeof 运算符可以返回一个值的数据类型,有以下结果
      • 数值、字符串、布尔值分别返回 numberstringboolean
      • 函数返回 function
      • undefined 返回 undefined
      • 其他情况(array,null)都返回 object
    • instanceof 运算符可以通过返回一个布尔值来确定这个对象是是否是特定类别或特定类别的子类
      • 在使用 typeof 运算符返回 object 时,用 instanceof 可确定数据特定类型
NaN(Not a Number)
  • 该属性代表非数字值的特殊值,NaN 和任何值都不相等,包括它自己
字符串转换成数值
  • 转换函数
    • parseInt()
      • 可将任何进制的值(string)转换成整数,其他类型返回 NaN
      • 0 开头默认为八进制,0x 开头默认为十六进制;第二个参数可指定进制
    • parseFloat()
      • parseInt() 类似,但字符串必须为十进制形式,且无法指定进制
        parseInt("12red");  //returns  12
        parseInt("010");  //returns   8
        parseInt("010", 10);  //returns   10
        parseFloat("0908");  //returns   908
        parseFloat("22.34.5");  //returns   22.34
      
  • 强制类型转换
    • number()
      • 转换整个值,而不是部分值
  • 利用 js 变量弱类型转换
=====
  • === 严格相等运算符(strict equality); 恒等运算符(identity operator)
    • 若两个值类型不同,则不相等
    • 若两个值都是 nullundefined,则不相等
    • 若两个值都是布尔值 true 或 都是布尔值 false,则不相等
    • 若一个值是 NaN,或两个值都是 NaN,则不相等
    • 若两个值为数字且数值相等,则它们相等
    • 若两个引用值指向同一对象、数组或函数,则相等
  • == 相等运算符(equal operator),与 === 类似,但其比较并不严格;如果两个操作数类型不同,那么相等运算符会进行一些类型转换,然后再进行比较
    • 若两个操作数类型相同,则比较规则和恒等运算符相同
    • 若类型不同
      • 若一个值是 null,另一个是 undefined,则它们相等
      • 若一个值是数字,另一个是字符串,先将字符串转换为数字,然后进行比较
      • 若一个值是 true,则将其转换为 1 ,若一个值是 false,则将其转换为 0;然后再进行比较
      • 若一个值是对象,另一个是数字或字符串,则将对象转换成原始值后再进行比较
      • 其他不同类型的比较均不相等
breakcontinue
  • break 语句的作用是立即退出最内层的循环或 switch 语句
  • continue 语句与 break 类似,但它不是退出循环,而是转而执行下一次循环
    • while 循环中,在循环开始处指定的 experssion 会重复检测,若结果为 true,循环体会从头开始执行
    • do/while 循环中,程序的执行直接跳到循环结尾处,这时会重新判断循环语句,之后才会继续下一次循环
    • for 循环中,首先计算 increment 表达式,然后再次检测表达式,用以判断是否执行循环体
    • for/in 循环中,循环开始遍历下一个属性名,这个属性名赋给了指定的变量
void(0)undefined
  • undefined 是一个全局属性,表示未定义或定义了没有赋值;void() 是一个一元运算符,传入任何参数都会返回 undefined
  • ES5 之前,undefined 是个可读/写的变量,可以给它赋任意值;修正后,全局变量下的 undefined 值为只读,不可改写,但在局部变量中仍然可以进行改写
  • 使用 void() 是为了避免 undefined 被改写而出现判断不准确的情况

refer to 每日一题 | 前端学习指南JavaScript 字符串转换数字 | CSDN

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • 1. JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么?...
    _达斯基阅读 208评论 0 0
  • 一、JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型? 最新的 ECMAScript 标...
    zh_yang阅读 357评论 0 0
  • 每天一句:每个月要读一本书,离开学校了,你还要经常保持阅读的习惯,大学时候,考前的通宵达旦,说明你具备快速学习的能...
    EndEvent阅读 427评论 0 0
  • 强制转换 强制转换主要指使用Number、String和Boolean三个构造函数,手动将各种类型的值,转换成数字...
    灯火阑珊Zone阅读 392评论 0 3
  • 上个月14号分手了。 在一起四年多了 感觉一下子都很突然 属于早恋。很早的早恋 2012年初一那个寒假在一起的 当...
    yto0阅读 211评论 0 1