javascript面向对象精要学习总结(第一章 类型)
原始类型共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面向对象精要学习总结(第一章 类型)相关推荐
- javascript面向对象精要学习总结(第三章 对象)
属性添加原理 一个对象首次添加某一属性时,是调用对象内部的put方法 一个对象修改某一属性是,是调用对象内部的set方法 属性是否存在 使用 in 方法时,会检测[自有属性]+[原型属性] 使用 ha ...
- javascript面向对象精要学习总结(第四章 构造函数和原型对象)
constructor 实例的构造函数属性 它是实例的构造函数属性,指向创建它的构造函数 不要用它来检测对象的类型,因为它可以被覆盖,并不准确 检测对象类型最好使用 instanceof functi ...
- javascript面向对象精要学习总结(第二章 函数)
函数也是对象,但一点不同 函数存在一个 call 的内部属性,表明函数可执行 typeof 对任何具有call属性的对象,都返回"function" function fun(){ ...
- javascript面向对象精要学习总结(第六章 对象模式)待更新
单对象的模块模式 定义单个对象,以自执行函数函数的方式 用闭包的方式,产生只通过特定方法访问的数据 var student = function(){var name = "gs" ...
- javascript面向对象精要学习总结(第五章 继承)
原型对象继承 原理:原型对象的属性可以经由对象实例访问 下面的例子,所含[对象继承]和[构造函数继承],用于理解[原型属性经由对象实例访问] //对象继承 var person = {name:&qu ...
- 《JavaScript面向对象精要》——第1章 原始类型和引用类型1.1 什么是类型
本节书摘来自异步社区<JavaScript面向对象精要>一书中的第1章,第1.1节,作者:[美]Nicholas C. Zakas 译者: 胡世杰 更多章节内容可以访问云栖社区" ...
- 《JavaScript面向对象精要》——第1章 原始类型和引用类型 1.1 什么是类型
本节书摘来自异步社区<JavaScript面向对象精要>一书中的第1章,第1.1节,作者:[美]Nicholas C. Zakas著,更多章节内容可以访问云栖社区"异步社区&qu ...
- 《JavaScript面向对象精要》——1.8 原始封装类型
本节书摘来自异步社区<JavaScript面向对象精要>一书中的第1章,第1.8节,作者:[美]Nicholas C. Zakas 译者: 胡世杰 更多章节内容可以访问云栖社区" ...
- 《JavaScript面向对象精要》——1.2 原始类型
本节书摘来自异步社区<JavaScript面向对象精要>一书中的第1章,第1.2节,作者:[美]Nicholas C. Zakas 译者: 胡世杰 更多章节内容可以访问云栖社区" ...
最新文章
- 阿里云助力合作伙伴帮助政府、企业体验云计算大数据魅力!
- 树莓派wifi环境下初始化及环境配置
- 68. Leetcode 669. 修剪二叉搜索树 (二叉搜索树-基本操作类)
- CVE-2014-7911 Android本地提权漏洞分析与利用
- 用python实现TCP协议传输功能(客户端代码)
- mysql复制的配置
- LINUX --基本概念和操作
- 只让输入数字、字母、中文的输入框
- python中darks_在Python 3中使用YOLOv2
- Python基础之集合set
- linux启动mysql_允许远程连接到MySQL数据库服务器的步骤
- 树莓派计算机视觉环境搭建
- 性能提升160%,为全球提供顶级算力:阿里云发布第三代神龙云服务器
- E71(S60 3rd)通话录音软件 -终极录音- 的用法
- 电商型网站要怎么制作?把住这三个关键点
- Windows 7笔记本创建wifi热点供手机上网教程
- 第四届蓝桥杯省赛C++A组 剪格子
- CVPR2022Oral专题系列(一):低光增强
- AttributeError: module ‘scipy.signal‘ has no attribute ‘correlation_lags‘
- Java Web完整学习记录
热门文章
- 当站长让我“屌丝”一夜变“土豪”
- 节日类非遗题材工笔人物画的创作实践 ——以《元日》系列作品为例
- Java split()方法中的特殊符号
- Java的@Transactional事务回滚
- ping计算机自己的网关,什么是ping网关,
- 【报告分享】2020年中国新白领消费行为研究报告-艾瑞咨询(附下载)
- 做主管常犯的毛病毛病一:拒绝承担个人的责任(转)
- (四)javaweb 学习--javascript篇基础
- 工作组计算机无法打开电子表格,excel可以共享吗怎么设置共享
- python——product()函数