原始类型共5种

  • string | number | boolean | undefined | null

内建引用类型共5种

  • Date | Error | Function | Object | RegExp

数组的动态方法

var arr = [1,2,3];
arr["push"](5);
console.log(arr);//[ 1, 2, 3, 5 ]

判断数组的最佳方法

  • Array.isArray(),node环境也支持

正则表达式的转义

  • 如果需要通过变量构造表达式,则使用构造函数(注意,需要对任何反斜杠进行转义)
  • 如果不需要动态构造表达式,则使用字面量
var nums = /\d+/g;
var nums = new RegExp("\\d+","g");

理解引用类型,堆内存和栈内存

  • 栈内存中保存了变量标识符和指向堆内存中该对象的指针
  • 堆内存中保存了对象的内容

判断对象为空

  • 最佳办法是直接和null对比( val===null )
  • 因为 typeof null === “object”,这一设计被官方认为是一个错误

主动解除对象引用

  • 注意,引用类型变量标识符和原始类型一样,存放在栈内存中
  • 最佳方式是将对象变量置为 null,以释放内存
  • 在大型程序中,主动解除十分重要

原始类型不是真正的对象

  • 尽管,原始类型拥有方法,看上去像对象一样(指Object类型)
  • 实际上,这只是js在语言一致性上,所做的封装
  • 实际上,包装类型数据,才是真正的对象
var str1 = "abc";
var str2 = new String("abc");
str1.color = "red"
str2.color = "red"
console.log(str1.color);//undefined
console.log(str2.color);//red
console.log(str1);//abc
console.log(str2.color);//String{"abc", color: "red"}

引用类型传值陷阱

function A(){return 5};
var book = {name:"english",price:100,
};
var obj = {name:"zk",fun:A,book:book,
};
obj.fun();//5
//重新声名A函数,并不会改变obj对象中fun方法的指向
function A(){return 6};
obj.fun();//5
book.price = 999;
obj.book.price;//999,改变了obj中book属性的值

javascript面向对象精要学习总结(第一章 类型)相关推荐

  1. javascript面向对象精要学习总结(第三章 对象)

    属性添加原理 一个对象首次添加某一属性时,是调用对象内部的put方法 一个对象修改某一属性是,是调用对象内部的set方法 属性是否存在 使用 in 方法时,会检测[自有属性]+[原型属性] 使用 ha ...

  2. javascript面向对象精要学习总结(第四章 构造函数和原型对象)

    constructor 实例的构造函数属性 它是实例的构造函数属性,指向创建它的构造函数 不要用它来检测对象的类型,因为它可以被覆盖,并不准确 检测对象类型最好使用 instanceof functi ...

  3. javascript面向对象精要学习总结(第二章 函数)

    函数也是对象,但一点不同 函数存在一个 call 的内部属性,表明函数可执行 typeof 对任何具有call属性的对象,都返回"function" function fun(){ ...

  4. javascript面向对象精要学习总结(第六章 对象模式)待更新

    单对象的模块模式 定义单个对象,以自执行函数函数的方式 用闭包的方式,产生只通过特定方法访问的数据 var student = function(){var name = "gs" ...

  5. javascript面向对象精要学习总结(第五章 继承)

    原型对象继承 原理:原型对象的属性可以经由对象实例访问 下面的例子,所含[对象继承]和[构造函数继承],用于理解[原型属性经由对象实例访问] //对象继承 var person = {name:&qu ...

  6. 《JavaScript面向对象精要》——第1章 原始类型和引用类型1.1 什么是类型

    本节书摘来自异步社区<JavaScript面向对象精要>一书中的第1章,第1.1节,作者:[美]Nicholas C. Zakas 译者: 胡世杰 更多章节内容可以访问云栖社区" ...

  7. 《JavaScript面向对象精要》——第1章 原始类型和引用类型 1.1 什么是类型

    本节书摘来自异步社区<JavaScript面向对象精要>一书中的第1章,第1.1节,作者:[美]Nicholas C. Zakas著,更多章节内容可以访问云栖社区"异步社区&qu ...

  8. 《JavaScript面向对象精要》——1.8 原始封装类型

    本节书摘来自异步社区<JavaScript面向对象精要>一书中的第1章,第1.8节,作者:[美]Nicholas C. Zakas 译者: 胡世杰 更多章节内容可以访问云栖社区" ...

  9. 《JavaScript面向对象精要》——1.2 原始类型

    本节书摘来自异步社区<JavaScript面向对象精要>一书中的第1章,第1.2节,作者:[美]Nicholas C. Zakas 译者: 胡世杰 更多章节内容可以访问云栖社区" ...

最新文章

  1. 阿里云助力合作伙伴帮助政府、企业体验云计算大数据魅力!
  2. 树莓派wifi环境下初始化及环境配置
  3. 68. Leetcode 669. 修剪二叉搜索树 (二叉搜索树-基本操作类)
  4. CVE-2014-7911 Android本地提权漏洞分析与利用
  5. 用python实现TCP协议传输功能(客户端代码)
  6. mysql复制的配置
  7. LINUX --基本概念和操作
  8. 只让输入数字、字母、中文的输入框
  9. python中darks_在Python 3中使用YOLOv2
  10. Python基础之集合set
  11. linux启动mysql_允许远程连接到MySQL数据库服务器的步骤
  12. 树莓派计算机视觉环境搭建
  13. 性能提升160%,为全球提供顶级算力:阿里云发布第三代神龙云服务器
  14. E71(S60 3rd)通话录音软件 -终极录音- 的用法
  15. 电商型网站要怎么制作?把住这三个关键点
  16. Windows 7笔记本创建wifi热点供手机上网教程
  17. 第四届蓝桥杯省赛C++A组 剪格子
  18. CVPR2022Oral专题系列(一):低光增强
  19. AttributeError: module ‘scipy.signal‘ has no attribute ‘correlation_lags‘
  20. Java Web完整学习记录

热门文章

  1. 当站长让我“屌丝”一夜变“土豪”
  2. 节日类非遗题材工笔人物画的创作实践 ——以《元日》系列作品为例
  3. Java split()方法中的特殊符号
  4. Java的@Transactional事务回滚
  5. ping计算机自己的网关,什么是ping网关,
  6. 【报告分享】2020年中国新白领消费行为研究报告-艾瑞咨询(附下载)
  7. 做主管常犯的毛病毛病一:拒绝承担个人的责任(转)
  8. (四)javaweb 学习--javascript篇基础
  9. 工作组计算机无法打开电子表格,excel可以共享吗怎么设置共享
  10. python——product()函数