范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

JavaScript中常用数据类型,你知道几个?

  本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!
  作者| 慕课网精英讲师 Lison
  这篇文章我们了解一下 JavaScript 中现有的八个数据类型,当然这并不是 JavaScript 中的所有数据类型,而是现在版本的 TypeScript 支持的基本类型,在学习基础类型之前,我们先来看下如何为一个变量指定类型:
  为一个变量指定类型的语法是使用"变量: 类型"的形式,如下: let num: number = 123
  如果你没有为这个变量指定类型,编译器会自动根据你赋给这个变量的值来推断这个变量的类型: let num = 123 num = "abc" // error 不能将类型""123""分配给类型"number"
  当我们给 num 赋值为123但没有指定类型时,编译器推断出了num 的类型为number 数值类型,所以当给num 再赋值为字符串"abc"时,就会报错。
  这里还有一点要注意,就是 number 和 Number 的区别:TS中指定类型的时候要用 number ,这个是TypeScript的类型关键字。而Number 为JavaScript的原生构造函数,用它来创建数值类型的值,它俩是不一样的。包括你后面见到的string、boolean等都是TypeScript的类型关键字,不是JavaScript语法,这点要区分开。接下来我们来看下,这八个JS中你见过的类型。2.1.1 布尔类型
  类型为布尔类型的变量的值只能是 true 或 false,如下: let bool: boolean = false; bool = true; bool = 123; // error 不能将类型"123"分配给类型"boolean"
  当然了,赋给 bool 的值也可以是一个计算之后结果是布尔值的表达式,比如: let bool: boolean = !!0 console.log(bool) // false2.1.2 数值类型
  TypeScript 和 JavaScript 一样,所有数字都是浮点数,所以只有一个 number 类型,而没有int 或者float 类型。而且 TypeScript 还支持 ES6 中新增的二进制和八进制数字字面量,所以 TypeScript 中共支持二、八、十和十六四种进制的数值。let num: number; num = 123; num = "123"; // error 不能将类型"123"分配给类型"number" num = 0b1111011; //  二进制的123 num = 0o173; // 八进制的123 num = 0x7b; // 十六进制的1232.1.3 字符串
  字符串类型中你可以使用单引号和双引号包裹内容,但是可能你使用的 tslint 规则会对引号进行检测,使用单引号还是双引号可以在 tslint 规则里配置。你还可以使用 ES6 语法——模板字符串,拼接变量和字符串更为方便。 let str: string = "Lison"; str = "Li"; const first = "Lison"; const last = "Li"; str = `${first} ${last}`; console.log(str) // 打印结果为:Lison Li
  另外还有个和字符串相关的类型: 字符串字面量类型 。即把一个字符串字面量作为一种类型,比如上面的字符串"Lison",当你把一个变量指定为这个字符串类型的时候,就不能再赋值为其他字符串值了,如: let str: "Lison" str = "haha" // error 不能将类型""haha""分配给类型""Lison""2.1.4 数组
  在 TypeScript 中有两种定义数组的方式: let list1: number[] = [1, 2, 3]; let list2: Array = [1, 2, 3];
  第一种形式通过 number[] 的形式来指定这个类型元素均为number类型的数组类型,这种写法是推荐的写法,当然你也可以使用第二种写法。注意,这两种写法中的number 指定的是数组元素的类型,你也可以在这里将数组的元素指定为任意类型。如果你要指定一个数组里的元素既可以是数值也可以是字符串,那么你可以使用这种方式:number|string[] ,这种方式我们在后面学习联合类型的时候会讲到。
  当你使用第二种形式定义时,tslint 可能会警告让你使用第一种形式定义,如果你就是想用第二种形式,可以通过在 tslint.json 的 rules 中加入 "array-type": [false] 关闭 tslint 对这条的检测。
  后面我们讲接口的时候,还会讲到数组的一个特殊类型:ReadonlyArray,即只读数组。 2.1.5 null 和 undefined
  null 和 undefined 有一些共同特点,所以我们放在一起讲。说它们有共同特点,是因为在 JavaScript 中,undefined 和 null 是两个基本数据类型。在 TypeScript 中,这两者都有各自的类型即 undefined 和 null,也就是说它们既是实际的值,也是类型,来看实际例子: let u: undefined = undefined;// 这里可能会报一个tslint的错误:Unnecessary initialization to "undefined",就是不能给一个值赋undefined,但我们知道这是可以的,所以如果你的代码规范想让这种代码合理化,可以配置tslint,将"no-unnecessary-initializer"设为false即可 let n: null = null;
  默认情况下 undefined 和 null 可以赋值给任意类型的值,也就是说你可以把 undefined 赋值给 void 类型,也可以赋值给 number 类型。当你在 tsconfig.json 的"compilerOptions"里设置了 "strictNullChecks": true 时,那必须严格对待。undefined 和 null 将只能赋值给它们自身和 void 类型,void类型我们后面会学习。2.1.6 object
  object 在 JS 中是引用类型,它和 JS 中的其他基本类型不一样,像 number、string、boolean、undefined、null 这些都是基本类型,这些类型的变量存的是他们的值,而 object 类型的变量存的是引用,看个简单的例子: let strInit = "abc"; let strClone = strInit; strClone = "efg"; console.log(strInit); // "abc"  let objInit = { a: "aa" }; let objClone = objInit; console.log(objClone) // {a:"aa"} objInit.a = "bb"; console.log(objClone); // { a: "bb" }
  通过例子可以看出,我们修改 objInit 时,objClone 也被修改了,是因为 objClone 保存的是 objInit 的引用,实际上 objInit 和 objClone 是同一个对象。
  当我们希望一个变量或者函数的参数的类型是一个对象的时候,使用这个类型,比如: let obj: object obj = { name: "Lison" } obj = 123 // error 不能将类型"123"分配给类型"object"
  这里有一点要注意了,你可能会想到给 obj 指定类型为 object 对象类型,然后给它赋值一个对象,后面通过属性访问操作符访问这个对象的某个属性,实际操作一下你就会发现会报错: let obj: object obj = { name: "Lison" } console.log(obj.name) // error 类型"object"上不存在属性"name"
  这里报错说类型 object 上没有 name 这个属性。如果你想要达到这种需求你应该使用我们后面章节要讲到的接口,那 object 类型适合什么时候使用呢?我们前面说了,当你希望一个值必须是对象而不是数值等类型时,比如我们定义一个函数,参数必须是对象,这个时候就用到object类型了: function getKeys (obj: object) {     return Object.keys(obj) // 会以列表的形式返回obj中的值 } getKeys({ a: "a" }) // ["a"] getKeys(123) // error 类型"123"的参数不能赋给类型"object"的参数
  这里你要明白object类型的使用。 2.1.6 symbol
  Symbol 是 ES6 加入的新的基础数据类型,因为它的知识比较多。 本节小结
  本篇文章我们总结了八个在JavaScript中我们就见过的数据类型,它们是:布尔类型、数值类型、字符串、数组、null、undefined、object以及ES6中新增的symbol。在TypeScript中它们都有对应的类型关键字,对应关系为: 布尔类型:boolean 数值类型:number 字符串类型:string 数组:Array或type[] 对象类型:object Symbol类型:symbol null和undefined:null 和 undefined,这个比较特殊,它们自身即是类型
  这些类型是基础,我们后面的高级类型很多都是它们的组合或者变形,所以一定要把这些基础先学会。
  欢迎关注「慕课网」,发现更多IT圈优质内容,分享干货知识,帮助你成为更好的程序员!

如果全部抛售美债会怎么样首先是美国经济,美债是美国政府借贷的重要手段,如果全部抛售美债,将导致美国政府无法融资,进而可能引发政府债务违约风险,严重影响美国经济。其次,美债是全球金融市场的重要组成部分,其规3月投资核心信息看哪些?每年3月这个时间,部长通道都是记者关注的焦点,部长通道并不是官方称谓,而是新闻媒体约定俗成的叫法。从这里传出的各部委负责人的只言片语,都可能传达出重要讯息。2020年后每年的部长通weex唯客大型杀猪盘最近有多名受害举报,WEEX唯客交易所限制提现,恶意利用老鼠仓,平台币收割韭菜,无法变现,恶意插针等等。收到举报后,小编去查了查WEEX唯客交易所的一些新闻资料,不查不知道,一查吓风雨中的温暖守护春季是雨水高发期,突如其来的大雨,给接送孩子上下学的家长带来了诸多不便。横溪幼儿园保安队员细心准备了一批便民伞,放在校门口。一旦下雨,没有伞的家长可以免费借去使用。便民伞遮挡的是风廊桥看浙里丨景宁大赤坑廊桥历沧桑风雨坎坷变坦途来源人民日报中央厨房环城西路二十号工作室碧水清波浮云影,青山翠峰入画来。在丽水景宁,沿着县城西南进入大均乡大赤坑村,一幅画卷便在眼前徐徐铺展临水带烟的村里山峦青翠,林木丰茂,云雾缭世界上存在着男人国你知道吗?想必大家都知道明代作家吴承恩西游记中描绘了关于女儿国的传说,国王到群臣及百姓都是全是女人,要怀孕就喝子母河的水就可以繁衍下一代。可神话终究是神话,世界上没有女儿国,但是有个地方确实樱花车站又芬芳长江日报大武汉客户端3月14日讯3月14日,东湖高新区珞喻东路叶麻店公交车站和大黄村公交车站的樱花如约而至,车站掩映在盛开的樱花树下,粉白色花瓣随风飞舞,匆匆路过的乘客和市民也不忘最强安检说到最强安检,那非烟台莫属,堪比机场,没有更严,只有最严!对于烟台,我印象深刻,因为工作原因经常会来到烟台,烟台的水果非常出名,烟台的大樱桃,莱阳的苹果,还有热情好客的烟台人,都让贷款资金流入证券账户房地产,邮储银行淄博分行被罚60万3月6日,中国银保监会山东监管局官网发布的行政处罚信息公开表(淄银保监罚决字202312号)显示,中国邮政储蓄银行股份有限公司淄博市分行因存在贷后管理不严等违法违规事实,被罚款60孩子青春期六大心理特征,如何疏导?家长看过来青春期的心理特征主要包括叛逆思维进步强烈的独立意识,以及对异性的崇拜心灵空虚等。进入青春期后,孩子的知识和视野比以前更开阔,更向往外界,可能会有明显的叛逆心理和表现。情感上不再依赖股民维权进行时!超200股被投资者索赔,能追回损失吗?一年一度的315要到了,消费者权益保护再度成为市场关注的焦点,不仅仅是消费者,证券市场上的投资者维权也是一大看点。经北京商报记者不完全统计,截至目前,赫美集团(002356)凯瑞德
环游中国去也去做自己梦寐以求的事,才不枉人生一世。那时的我还是个少年,站在新学期9月的操场,仰望无尽的蓝天,决心将来仗剑独行,浪迹天涯,读着万卷书,走着万里路,终成一代大侠。这个梦做了太久,一责任与担当责任其实我觉的就是分内应做的事,说某人有责任感,就是他自觉地做好分内的事。一个有责任心的人一定会努力认真工作听从安排,不会中途放弃,能主动处理好分内与分外相关工作,有人监督与无人监庆国庆迎盛会微心愿浙江省安吉县天荒坪镇余村村书记助理毕真依托绿水青山做大共富朋友圈国庆期间,我和村镇干部天天起大早看点位,和中国旅游研究院的专家商讨大景区的规划和产业布局。大景区以余村为核心,涉及3个乡镇17个村,将打造1个核心4大功能区5个发展极,携手迈向共同不管是茅台还是牛栏山,烫一下就现原形,为何粮食酒不怕热?为什么古代很多人喝酒前都要将酒烫一下呢?烫酒就只为了喝起来不凉吗?烫酒可以让酒更加好喝,喝起来更加舒服,还可以很好地去除白酒中的杂质,烫完之后的白酒喝起来也会更加柔顺爽口,别有风味青椒最营养的吃法,实在太香了,开胃下饭又解馋,出锅瞬间就扫光国以民为本,民以食为天,各位老饕大家好!很多人都喜欢吃夹心的食物,比如藕盒子,茄盒,汤圆等等,今天,我要教大家用青椒做个夹心的美味,名字叫做青椒酿肉,一听就好吃,不过做出来也是真的冬天煮火锅的时候,上面漂的那一层白色的东西是什么?会很脏吗?冬天煮火锅的时候,上面漂的那一层白色的东西是什么?会很脏吗?说到吃,在中国有很多不同的吃法,最近天冷了,这个时候吃火锅是人们最喜爱的吃法之一。很多人吃火锅的时候都会发现在火锅煮的过四川小镇30年的苍蝇馆子,只卖3个菜,客人一边骂一边排队来吃川菜在八大菜系中,有很高的人气,四川的苍蝇小馆儿特别多,这些苍蝇小馆里的菜品,看起来很一般,但味道却得到食客的认可。四川小镇有家开了30年的苍蝇馆子,只卖3个菜,因为服务态度差,客索菲亚公主又长高了,穿波点裙脚踩平底鞋,15岁个头高过莱蒂齐亚西班牙王室一家三口出席活动,没有女王储莱昂诺尔出镜,小公主索菲亚独自美!只见她穿着蓝色打底的波点裙,一头秀发披肩皮肤白皙又清纯,站在妈妈莱蒂齐亚旁边,高颜值的五官艳压妈妈了!作为标天冷还穿单衣,容易长肥肉?天气转凉,本该是秋衣秋裤安排起来的时间,可就是有一群人坚持身着单衣,即便是在寒风中瑟瑟发抖,为了避免臃肿的体态也轻装上阵。甚至有很多爱美的女士,尽管是在气温零下的冬日里,也不忘穿上时尚圈是个圈?乐福鞋与正装皮鞋卷土重来有时,所谓的时尚潮流往往只是对民众喜好的反应。5年前,职场人士或秀场观众穿着运动鞋出席现场的景象,还是相对罕见的。而真正的特立独行者是那些敢于将Burberry的外套与NikeDu(G)IDLE田小娟,低V领短裙秀火辣身材,雍容华贵的金发女神24岁韩国女星,女团(G)IDLE成员田小娟(全昭妍),金发低V领短裙展现了奢华的视觉效果,火辣的穿搭时尚,秀出迷人的身材,吸引了韩国网友们的目光。10月13日,有韩国媒体以标题(剖宫产三个月后发现怀孕两个月,医生产后月经没恢复也要避孕文菁妈江苏南京一个28岁的妈妈,在产后三个月去医院复查的时候,居然发现自己已经怀孕两个月了!女子产后3个月发现又怀孕2个月而她的孩子是剖宫产出生的,医生面对她这样的情况也是觉得特别一枚铜钱的启示亲爱的宝贝你还记得这枚铜钱吗?我想你一定记得,因为在你成长的过程中,我们曾数次把他拿出来,当作警钟敲响。那是在你刚二三岁时,夏末秋初,你和爸爸一起去城里玩。路过一个古玩的地摊。你,让孩子玩沙子吧!能促进身心发展,培养专注力最近有家长在后台留言我家孩子非常爱玩沙子,每次带去沙滩或者公园里,怎么拽都拽不走,令人头大。我的孩子为什么这么爱玩沙子?玩沙子对孩子有什么好处?我应该制止吗?今天多妹就跟大家聊聊孩度假休闲游报告发布,短视频平台成为旅游业新风向随着短视频平台的兴起,以直播内容种草为主流的新型消费方式成为新的趋势,抖音等短视频平台也越来越成为人们旅游决策的重要信息渠道。为了应对这种新变化,越来越多的文旅商家开始加入短视频平发现鹰城丨3000多年前神秘古国孕育现代鹰城开栏的话平顶山,西周时期为武王宗室应侯封地,应国以鹰为图腾,又称鹰城。春秋时期,孔子与叶公曾在这里讨论治国理政之策,留下了近者悦,远者来的治国名言。鹰城历史悠久,文化厚重,名人辈出乡村之变创享来源吉林省人民政府首页大图片在加强保护的前提下,抚松县漫江镇锦江木屋村积极发展特色民宿卖山货做民俗体验等乡村旅游项目。昔日以开荒狩猎人参采挖和捕鱼为生的情景已不复存在。从昔日的龙须云游北武当山,游山玩水胜地,攻略解读久仰北武当山,虽然史出有名,但一直未能成行,适逢暑假期间,携友登临胜地,那时山脚酷暑难耐,山顶寒气逼人,冰火两重天的气候反差依然记忆犹新,也使得许多首次登顶的游客猝不及防,狼狈不堪廿万公里12章通江县是全国背篼使用最多的县城之一背篼是通江的名片通江老帅哥第十二节诺水河风光秀美,玩穿越车进汉中。通江二日的游程结束了,次日一搭乘班车经省道201过通江著名风景诺水河,翻越大巴山脉,进入陕西南郑县,朱家坝西河小坝杭州旅游线路攻略你一句春不晚,我就到了真江南线路攻略骑行一日游D1断桥残雪一湖滨公园一柳浪闻莺一井雷峰塔一苏堤一印象西湖莫干山一日游庾村一莫干山一松月庐一芦花荡公园经典二日游D1断桥残雪一白堤一孤浙江舟山群岛一个被写进歌里却并不遥远的地方长涂岛长涂岛位于浙江舟山群岛北部,岱山本岛以东,东极岛以西,共有两个岛屿(大长涂岛和小长涂岛)组成,两岛相峙群山绵延,夹成一港。大长涂岛长涂岛地处舟山渔场中心,以盛产金色大黄鱼银色鲳鱼而藏在广西浦北大山里的一座百年尼姑庵,明朝年间高僧云游至此修建浦北县平睦镇五峰山顾名思义是由五座相连的山峰组成错落有致,各有千秋,既自成一体,又互为映衬在这连绵大山里每年都会有后人登上孝子坟祭拜不过,今天咱们先不说孝子坟欲想了解请继续关注今天