当前位置: 首页 > news >正文

校园网站建设和管理工作制度福州seo技巧培训

校园网站建设和管理工作制度,福州seo技巧培训,厦门建设厅查询网站,得物app订单制作包装对象类型 目录 包装对象类型 目录包装对象的概念包装对象类型和字面量类型Objectobject 包装对象的概念 JavaScript 的8种类型之中,undefined和null其实是两个特殊值,object属于复合类型,剩下的五种属于原始类型(primiti…

包装对象类型

目录

  • 包装对象类型
    • 目录
    • 包装对象的概念
    • 包装对象类型和字面量类型
    • Object
    • object

包装对象的概念

JavaScript 的8种类型之中,undefinednull其实是两个特殊值,object属于复合类型,剩下的五种属于原始类型(primitive value),代表最基本的、不可再分的值。

  • boolean
  • string
  • number
  • bigint
  • symbol

📌上面这五种原始类型的值,都有对应的包装对象(wrapper object)。所谓“包装对象”,指的是这些值在需要时,会自动产生的对象。

// 包装对象概念
'hello'.charAt(1) // 'e'

上面示例中,字符串hello执行了charAt()方法。但是,在 JavaScript 语言中,只有对象才有方法,原始类型的值本身没有方法。这行代码之所以可以运行,就是因为在调用方法时,字符串会自动转为包装对象,charAt()方法其实是定义在包装对象上。

这样的设计大大方便了字符串处理,省去了将原始类型的值手动转成对象实例的麻烦。

五种包装对象之中,symbol 类型和 bigint 类型无法直接获取它们的包装对象(即Symbol()BigInt()不能作为构造函数使用),但是剩下三种可以。

  • Boolean()
  • String()
  • Number()

以上三个构造函数,执行后可以直接获取某个原始类型值的包装对象。

const Bakun = new String("hello");
typeof Bakun; // 'object'
Bakun.charAt(1); // 'e'

上面示例中,Bakun 就是字符串hello的包装对象,typeof运算符返回object,不是string,但是本质上它还是字符串,可以使用所有的字符串方法。

注意,String()只有当作构造函数使用时(即带有new命令调用),才会返回包装对象。如果当作普通函数使用(不带有new命令),返回就是一个普通字符串。其他两个构造函数Number()Boolean()也是如此。

包装对象类型和字面量类型

由于包装对象的存在,导致每一个原始类型的值都有包装对象和字面量两种情况。

'hello' // 字面量
new String('hello') // 包装对象

为了区分这两种情况,TypeScript 对五种原始类型分别提供了大写和小写两种类型。

  • Boolean 和 boolean
  • String 和 string
  • Number 和 number
  • BigInt 和 bigint
  • Symbol 和 symbol

其中,大写类型同时包含包装对象和字面量两种情况,小写类型只包含字面量,不包含包装对象。

//ts中
const Bakun02: String = "hello"; // 正确
const Bakun03: String = new String("hello"); // 正确const Bakun04: string = "hello"; // 正确
const Bakun05: string = new String("hello"); // 报错

建议只使用小写类型,不使用大写类型。因为绝大部分使用原始类型的场合,都是使用字面量,不使用包装对象。而且,TypeScript 把很多内置方法的参数,定义成小写类型,使用大写类型会报错。

const n1:number = 1;
const n2:Number = 1;Math.abs(n1) // 1
Math.abs(n2) // 报错

Object

大写的Object类型代表 JavaScript 语言里面的广义对象。所有可以转成对象的值,都是Object类型,这囊括了几乎所有的值。

let obj:Object;obj = true;
obj = 'hi';
obj = 1;
obj = { foo: 123 };
obj = [1, 2];
obj = (a:number) => a + 1;

上面示例中,原始类型值、对象、数组、函数都是合法的Object类型。

事实上,除了undefined和null这两个值不能转为对象,其他任何值都可以赋值给Object类型。

let obj:Object;obj = undefined; // 报错
obj = null; // 报错

上面示例中,undefined和null赋值给Object类型,就会报错。

另外,空对象{}是Object类型的简写形式,所以使用Object时常常用空对象代替。

let obj:{};obj = true;
obj = 'hi';
obj = 1;
obj = { foo: 123 };
obj = [1, 2];
obj = (a:number) => a + 1;

上面示例中,变量obj的类型是空对象{},就代表Object类型。

显然,无所不包的Object类型既不符合直觉,也不方便使用。

object

小写的object类型代表 JavaScript 里面的狭义对象,即可以用字面量表示的对象,只包含对象、数组和函数,不包括原始类型的值。

let obj:object;obj = { foo: 123 };
obj = [1, 2];
obj = (a:number) => a + 1;
obj = true; // 报错
obj = 'hi'; // 报错
obj = 1; // 报错

上面示例中,object类型不包含原始类型值,只包含对象、数组和函数。

大多数时候,我们使用对象类型,只希望包含真正的对象,不希望包含原始类型。所以,建议总是使用小写类型object,不使用大写类型Object。

注意,无论是大写的Object类型,还是小写的object类型,都只包含 JavaScript 内置对象原生的属性和方法,用户自定义的属性和方法都不存在于这两个类型之中。

const o1:Object = { foo: 0 };
const o2:object = { foo: 0 };o1.toString() // 正确
o1.foo // 报错o2.toString() // 正确
o2.foo // 报错

上面示例中,toString()是对象的原生方法,可以正确访问。foo是自定义属性,访问就会报错。

后续会和大家说怎么描述对象的自定义属性

http://www.yayakq.cn/news/140666/

相关文章:

  • 嘉兴网站制作多少钱企业解决单身问题方案
  • 合肥做网站的公番禺网站制作 优帮云
  • 电商 网站 降低 跳出率 措施 效果开个小公司需要多少钱注册
  • 营销型网站建设托管网店运营管理与营销推广
  • 济宁网站建设方面好的做详情页的网站有哪些
  • wordpress自带站内搜索功能做图书网站赚钱吗
  • 做民宿怎么登录网站网站转化低的原因
  • 深圳做手机网站天津网上办事大厅官网入口
  • 陇西网站建设 室内设计培训机构老师何去何从
  • 自己可以接单做网站吗会展设计说明
  • 成都网站空间创新互联重庆建网站要多少钱
  • 深圳网站建设g商业中心 网站建设
  • 计算机怎么建设网站查公司名称是否已经被注册
  • 自贡企业网站建设公司wordpress错位
  • 网站建设算固定资产吗手机网站开发专业
  • 网站服务器租用价格 百度一下wordpress 发文章
  • 移动网站开发 公众号中国机械加工设备展会
  • 网站联系方式连接怎么做电脑怎么建网站
  • 天蓝色系网站设计怎么建设信息网站
  • 做商城网站哪里宁波模板建站定制网站
  • 天津市建设工程质量协会网站网站地图文件
  • 建设银行啦卡信用网站我想做个网站推广怎么做
  • 遵义网站设计公司网站建设与维护 教学大纲
  • 成都网站建设报价52影院
  • 网站的开发建设要做什么的成都网站开发哪家好
  • 网站psd设计稿务川自治县建设局网站
  • 江门做网站多少钱网上如何注册公司
  • 大家都用哪个网站做读书笔记谷歌推广技巧
  • 舟山网站建设制作四川建设网官网地址
  • 足球竞猜网站开发好学校平台网站模板下载