读书笔记 - js高级程序设计 - 第五章 引用类型
|
引用类型 和 类
|
不是一个概念
|
|
用typeof来检测属性是否存在
|
typeof args.name == "string"
需要实验
|
|
访问属性的方法
|
.号和[]
一般情况下要用.
|
|
判断是否是数组
|
Array.isArray( a )
|
|
数组变字符串
|
array.join("||") ;
|
|
重排序
|
reverse sort
sort( compare )
function compare(a, b){
if( a > b ) return 1
}
前端大于后值,return 1,则升序排列
|
|
连接 数组
|
concat()
|
|
slice()
|
不影响原数组,返回的是新生成的数组
|
|
splice()
|
可删 可插 替换
返回被删除的数组
|
|
位置方法
|
indexOf lastIndexOf
|
|
迭代方法
|
有两个参数 方法 和 this
方法有三个参数 item index list
|
|
迭代方法有哪些
|
判断
some
every
过滤
filter
覆盖
map 返回新数组
forEach 直接对原数组操作 无返回值
|
|
归并方法
|
reduce 和 reduceRight
有两个参数 方法 和 归并基础的初始值
方法有上个参数 lastOne thisOne index list
|
|
Date方法
|
Date.parse() 把格式化的转成毫秒数
Date.UTC(年,月,日,时,分,秒)转成毫秒数
Date.now() 取得当前毫秒数
|
|
日期格式化
|
调用 toString() 即可
|
|
日期的方法
|
getFullYear getMonth getDate getDay getHours getMinutes getSeconds
|
|
RegExp类型
|
/.at/匹配所有以at结尾的3个字符的组合 不区分大小写
|
|
捕获组
|
记住用法
|
|
exec
|
即使设置了g, 每次也只返回一个新的匹配
|
|
test
|
返回的是 布尔值
|
|
函数内部两属性
|
arguments this
arguments有callee 指向函数
|
|
函数的两个属性
|
length 函数希望接收到的命名参数个数
prototype 这个属性不可被枚举 ,用于保存所有实例方法
|
|
apply 和 call 的区别
|
参数以数组的形式传给apply的第二个参数
在用call时,传递给函数的参数必须逐个列举出来
|
|
bind
|
bind() 这个方法会创建一个函数的实例,其this值会被绑定到传给bind()函数的值
|
|
让数值显示指定的小数位
|
num.toFixed( 2 )
|
|
trim
|
删除前置和后置的空格
|
|
大小写转换
|
toLowerCase toUpperCase
|
|
字符串的方法中 和 正则相关的
|
String.match( Reg ) 返回所有符合的
String.search( Reg ) 永远是从字符串的开关向后查找模式
String.replace( Reg ) 可全局替换
通过一些特殊符号,可返回最近一次匹配结果中的内容
var text = "cat bat sat"
result = text.replace(/(.at)/g, "word ($1)" );
答案是 word(cat) word(bat) word(sat)
即可以返回第一个捕获组的值
|
|
replace方法的第二个参数也可以是一个函数
|
text.replace( /[<>"&]/g, function( match,pos,originalText){ } )
match是模式的匹配项
pos是模式匹配项在字符串中的位置
originalText是原始字符串
如果正则定义了多个捕获组,那么上面那个function里的参数是
( match0,match1,match2,match3,pos,originalText) ;
|
|
split( a, b ) ;
|
把字符串转化为数组
b表示数组的最大长度
|
|
单体内置对象
|
不依赖于宿主环境 在程序执行之前已经存在的 比如Global 和 Math
|
|
Global
|
isNaN isFinite parseInt parseFloat 全是Global的方法
|
|
encodeURI decodeURI
encodeURIComponent decodeURIComponent
|
对整个url编码
对url query里的查询参数编译
|
|
eval
|
把字符串变成表达式 ,请慎用
|
|
window Global
|
js里的window扮演了EcmaScript规定的Global对象的角色外,还承担了很多别的任务
|
读书笔记 - js高级程序设计 - 第五章 引用类型的更多相关文章
- 读书笔记 - js高级程序设计 - 第十一章 DOM扩展
对DOM的两个主要的扩展 Selectors API HTML5 Element Traversal 元素遍历规范 querySelector var body = document.query ...
- 读书笔记 - js高级程序设计 - 第七章 函数表达式
闭包 有权访问另一个函数作用域中的变量的函数 匿名函数 函数没有名字 少用闭包 由于闭包会携带包含它的函数的作用域,因此会比其它函数占用更多的内存.过度使用闭包可能会导致内存占用过多,我们建议读者 ...
- 读书笔记 - js高级程序设计 - 第六章 面向对象的程序设计
EcmaScript有两种属性 数据属性 和 访问器属性 数据属性有4个特性 Configurable Enumerable Writable Value 前三个值的默认值都为false ...
- 读书笔记 - js高级程序设计 - 第四章 变量 作用域 和 内存问题
5种基本数据类型 可以直接对值操作 判断引用类型 var result = instanceof Array 执行环境 每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这 ...
- 读书笔记 - js高级程序设计 - 第三章 基本概念
启用严格模式 "use strict" 这是一个 pragma 编译指示 让编码意图更清晰 是一个重要原则 5种简单数据类型 Undefined Null Boolean Num ...
- 读书笔记 - js高级程序设计 - 第十五章 使用Canvas绘图
读书笔记 - js高级程序设计 - 第十三章 事件 canvas 具备绘图能力的2D上下文 及文本API 很多浏览器对WebGL的3D上下文支持还不够好 有时候即使浏览器支持,操作系统如果缺缺 ...
- 读书笔记 - js高级程序设计 - 第十二章 DOM2和DOM3
Node类型的变化 访问元素的样式 myDiv.style.backgroundColor = "red" myDiv.style.width = "100px& ...
- 读书笔记 - js高级程序设计 - 第十章 DOM
文档元素 是文档的最外层元素,在Html页面中,文档元素始终都是<html>元素 在xml中,任何元素都可以是文档元素 Node类型 Node.ELEMENT_NODE 元素 Node ...
- 读书笔记 - js高级程序设计 - 第八章 BOM
BOM的核心对象是window 它表示浏览器的一个实例,在浏览器中,window对象有双重角色,它既是通过js访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象,这意味着在网 ...
随机推荐
- DRF项目之自定义分页器
在项目中,我们多需要自定义分页器. 代码实现: class PageNum(PageNumberPagination): '''自定义分页器''' # 每页显示个数 page_size = 10 pa ...
- Thymeleaf(一)---引入js/css文件
th:href="@{/static/css/style.css}" th:src="@{/static/js/thymeleaf.js}" index.htm ...
- 99乘法表(for循环嵌套)
计算乘法表 两个数相乘,外层循环代表被乘数,控制行数:内层代表乘数,控制列数. 循环嵌套,变量名不可以重复. 使用 break 语句让输出的乘法表更简洁. 使用 String 变量,做 String ...
- NoSql相关
1 NoSQL, No Problem: An Intro to NoSQL Databases https://www.thoughtworks.com/insights/blog/nosql-n ...
- Python中eval与exec用法的区别
Python中eval,exec这两个函数有着相似的输入参数类型和执行功能,因此在用法上经常出现混淆,以至经常用错,程序易抛出错误.下面主要通过这两个函数的语法来阐述区别,并用例子来进一步说明. 首先 ...
- 解析underscore中的throttle
什么是throttle(节流) Throttling enforces a maximum number of times a function can be called over time. 简单 ...
- CAN通讯基本设置
A节点pelican协议下,扩展帧 单滤波方式 A节点的接收滤波器 ID号 设置为 0x19881205 设置过程 (1) pelican模式设置 设置时钟分频寄存器CDR.7 =1 使SJA1000 ...
- [YOLO]《YOLO9000:Better, Faster, Stronger》笔记
一.简单介绍 YOLO9000(也叫YOLO v2),主要是在YOLO v1的基础上做了改进,而且效果还是比较显著的,在原论文中,作者提到的改进大致包括两个工作: 1.检测性能上的改进,提出了YOLO ...
- 《学习R》笔记:科学计算器、检查变量和工作区、向量、矩阵和数组、列表和数据框
一.第二章 科学计算器 要检查两个数字是否一样,要使用 all.equal() ,不要使用 == ,== 符号仅用于比较两个整型数是否存在相同 . > all.equal(sqrt(2)^2,2 ...
- Spring Boot -- Spring Boot之@Async异步调用、Mybatis、事务管理等
这一节将在上一节的基础上,继续深入学习Spring Boot相关知识,其中主要包括@Async异步调用,@Value自定义参数.Mybatis.事务管理等. 本节所使用的代码是在上一节项目代码中,继续 ...