《JavaScript 高级程序设计》读书笔记五 引用类型
一 Object类型
a.两种创建方式:
1.new+构造函数Object;
2.对象字面量表示法;
b.两种访问属性方式:
1.点表示法(.属性);
2.方括号([“属性”]);
二 Array类型
a.两种创建方式:
1.new+构造函数Array;
2.数组字面量表示法;
b.两种检测类型方式:
1.instanceof;
2.Array.isArray();
c.四种转换方式:
1.toLocaleString();
2.toString() 返回以","分隔的字符串
3.valueof() 返回数组
4.join("分隔符") 返回以"分隔符"分隔的字符串
d.数组添加移除操作:
添加 | 移除 | |
数组尾 | push()---返回数组长度 | pop()---返回移除项 |
数组头 | unshift()---返回数组长度 | shift()---返回移除项 |
push等同于array[array.length] = " ";
e.重排序:
1.reverse() 反转数组
2.sort() 按某种规则对数组进行排序
//按数组从小到大进行排序
function compare(value1,value2){
return value2-value1;
}
array.sort(compare);
f.操作方法:
1.concat() 多个参数,数组叠加
2.slice() 返回截取新数组
一个参数:起始到数组结束;
两个参数:第一个起始位置,第二个结束位置之前的位置
2.splice() 返回一个包含从原始数组中删除的项目
删除(两个参数):第一个参数是起始位置,第二个是删除项数;
插入或替换(三个参数):第一个参数起始位置,第二个删除项数,第三个是要插入的项;
g.位置方法:
indexof 从头到尾
lastIndexof 从尾到头
两个参数:第一个要查找的项,第二个起点位置索引(可选)
h.迭代方法:
every() 每一项返回true,返回true;
some() 任一项返回true,返回true;
filter() 利用指定函数返回满足条件的数组;
forEach() 等同于for循环;
map() 每一项运行传入函数返回处理后的数组;
三个参数:数组项的值,项的索引,数组对象
var numbers = [1,2,3,4,5,4,3,2,1];
var filterResult = numbers.filter(function(item,index,array){
return (item>2);
});
var mapResult = numbers.map(function(item,index,array){
return item*2;
});
h.归并方法:
reduce() 从前往后
reduceRight() 从后往前
四个参数:前一个值,当前值,项的索引,数组对象
var values = [1,2,3,4,5];
var sum = values.reduce(function(prev,cur,index,array){
return prev+cur;
});
三 Date类型
a.创建方式:
var now = new Date();
参数:
1.Date.parse("月份英文 日,年份")
2.Date.UTC("年,月,日,时,分,秒,毫秒") 年月必需,其它不必需,月份-1
b.获取当前的毫秒数:
1.var now = Date.now();
2.var now = +new Date();
四 RegExp类型
a.创建正则表达式:
1.字面量形式
正则表达式 = /模式(规则)/标志
标志:
g 全局模式
i 不区分大小写模式
m 多行模式
2.RegExp构造函数
b.属性
global:是否设置g标志;
ignoreCase:是否设置i标志;
multiline:是否设置m标志;
lastIndex:表示搜索下一个匹配项的字符位置,从0算起;
source:正则表达式的字面量表示形式;
c.实例方法
exec(a) 参数a是要应用模式的字符串;返回第一个匹配项信息的数组,数组有两个属性,index为匹配项在字符串里的位置,input为a;没有匹配项返回null;
test(a) 参数a为字符串;返回true和false;
toString() 和 toLocaleString() 返回正则表达式的字面量表示法;
d.构造函数属性
五 Function类型(函数名是指向函数的指针)
a.创建方式:
1.函数声明(解析器率先读取):
function sum(num1,num2){
return num1+num2;
};
2.函数表达式(解析器执行到该行才执行):
var sum = function(num1,num2){
return num1+num2;
};
3.构造函数(不推荐):
var sum = new Function("num1","num2","return num1+num2");
b.作为值的函数:
1.函数做参数,取缔啊函数后面的园挎号;
2.函数做返回值;
c.函数内部属性:
1.argument;
---callee属性,指向拥有argument对象的函数,可以消除耦合;
---caller属性,保存调用当前函数的函数的引用;
2.this:this引用的是函数据以执行的环境对象;
d.函数属性和方法:
1.属性;
---length属性:参数个数;
---prototype属性,保存实例方法的真正所在;
2.方法:
---apply(),call(),bind()
function sum(num1,num2){
return num1+num2;
} function callsum1(num1,num2){
return sum.apply(this,arguments);
}
function callsum2(num1,num2){
return sum.apply(this,[num1,num2]);
}
function callsum3(num1,num2){
return sum.call(this,num1,num2);
}
console.log(callsum1(10,10));
console.log(callsum2(10,10));
console.log(callsum3(10,10)); window.color = "red";
var o = {color:"blue"};
function sayColor(){
console.log(this.color);
}
sayColor();
sayColor.call(this);
sayColor.call(window);
sayColor.call(o); var objectSayColor = sayColor.bind(o);
objectSayColor();
六 基本包装类型
a.三类:Boolean,Number,String
b.Boolean
布尔表达式中的所有对象都会被转换为true;
c.Number
toFixed(a) a表示小数点位数;
toExponential(a) 指数表示法,参数也是表示小数点位数;
toPrecision(a) a表示所有数字位数;
d.String
1.属性
length:字符串长度,包括空字符;
2.方法
charAt(a) a位置的字符;
charCodeAt(a) a位置的字符编码
concat() 拼接字符串,等同于"+"
slice(a,b) a字符串的起始位置(如果负数,与字符串长度相加),b字符串最后一个字符后面的数字(如果负数,与字符串长度相加);b不存在的话就将字符串长度作为结束位置
substr(a,b) a字符串的起始位置(如果负数,与字符串长度相加),b字符串的个数(如果负数,为0);b不存在的话就将字符串长度作为结束位置
substring(a,b) a字符串的起始位置(如果负数,为0),b字符串最后一个字符后面的数字(如果负数,为0);b不存在的话就将字符串长度作为结束位置
indexOf(a,b); a需要查找的字符,b起始位置(可不存在);从头开始查询;
lastIndexOf(a,b); a需要查找的字符,b起始位置(可不存在);从尾开始查询;
tirm 返回字符串的副本,删除前置和后缀的空格;
toLowerCase() toLocaleLowerCase() 转换为小写英文字母;
toUpperCase() toLocaleUpperCase() 转换为大写英文字母;
match(a) a正则表达式或RegExp对象,返回一个匹配数组;
search(a) a正则表达式或RegExp对象,返回第一个匹配性索引;
replace(a,b) a为正则表达式或RegExp对象,可以替换所有匹配项,只需要指定全局(g)标志;如果a为字符串,则只会替换第一个子字符串;
split(a,b) 以指定分隔符将字符串分割成多个子字符串并生成数组,a为分割符,b为数组length;
localeCompare() 返回正数负数零;比较字符串在字母表里排序;
3.构造函数的静态方法
formCharCode() 将字符编码转换为字符串;
七 单体内置对象
a.Global
eocodeURI() decodeURI() 不会对本身属于URI的特殊字符进行编码或解码;
encodeURIComponent() decodeURIComponent() 对任何非标准字符进行编码或解码;
eval()
b.Math
Math.max() 取最大值;
Math.min() 取最小值;
//取数组最大值
var value = [1,2,3,4,5,6,7,8];
var max = Math.max.apply(Math,value);
Math.ceil() 向上舍入;
Math.floor() 向下舍入;
Math.round() 四舍五入;
Math.random() 取0-1里的随机数;
Math.abs() 取绝对值;
Math.pow(a,b) a的b次幂;
Math.sqrt(a) a的平方根;
《JavaScript 高级程序设计》读书笔记五 引用类型的更多相关文章
- javascript高级程序设计读书笔记-事件(一)
读书笔记,写的很乱 事件处理程序 事件处理程序分为三种: 1.html事件2. DOM0级,3,DOM2级别 没有DOM1 同样的事件 DOM0会顶掉html事件 因为他们都是属性 而 ...
- 《JavaScript高级程序设计》笔记:引用类型(五)
Object类型 创建object实例方法有两种.第一种方法使用new操作符后跟object构造函数.如下: var person=new Object(); person.name="Ni ...
- javascript高级程序设计读书笔记----引用类型
Array类型. ECMAScript数组的每一项可以保存任何类型的数据. 数组大小是可以动态调整的. 创建数组第一种基本方式方式: 使用Array构造函数 var colors = new ...
- JavaScript高级程序设计 读书笔记
第一章 JavaScript 简介 第二章 Html中使用JavaScript 第三章 基本概念 第四章 变量,作用域,内存 第五章 引用类型 第六章 面向对象 第七章 函数表达式 第八章 BOM 第 ...
- javascript高级程序设计读书笔记
第2章 在html中使用javascript 一般都会把js引用文件放在</body>前面,而不是放在<head>里, 目的是最后读取js文件以提高网页载入速度. 引用js文 ...
- Javascript高级程序设计读书笔记(第六章)
第6章 面向对象的程序设计 6.2 创建对象 创建某个类的实例,必须使用new操作符调用构造函数会经历以下四个步骤: 创建一个新对象: 将构造函数的作用域赋给新对象: 执行构造函数中的代码: 返回新 ...
- javascript高级程序设计 读书笔记2
第五章 引用类型 对象是引用类型的实例,引用类型是一种数据结构,将数据和功能组织在一起.描述的是一类对象所具有的属性和方法.对象是某个特定引用类型的实例,新对象是使用new操作符后跟一个构造函数俩创建 ...
- JavaScript高级程序设计-读书笔记(7)
第22章 高级技巧 1.高级函数 (1)安全的类型检测 在任何值上调用Object原生的toString()方法,都会返回一个[object NativeConstructorName]格式的字符串. ...
- JavaScript高级程序设计-读书笔记(2)
第6章 面向对象的程序设计 创建对象 1.最简单方式创建Object的实例,如 var person = new Object(); person.name = “Greg”; person.age ...
- JavaScript高级程序设计-读书笔记(1)
第1章 JavaScript简介 JavaScript是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成: l ECMAScript:提供核心语言功能: l 文 ...
随机推荐
- python环境搭建(linux)
python安装 # wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz # yum install openssl-devel ...
- 报错:APP has stopped
由于在 /MyActivity/AndroidManifest.xml 中把activity的类名打错,而导致程序加载后即出错. 而输错启动程序的类名并不会引起报错,因此这个应该引起注意.
- tomcat关闭时Log4j2报错 Log4j Log4j2-TF-4-Scheduled-1 memory leak
出错信息: 23-Sep-2017 17:43:18.964 警告 [main] org.apache.catalina.loader.WebappClassLoaderBase.clearRefer ...
- 一篇文章说清楚mysql索引
索引是什么? 索引是为了加速对表中数据行的检索而创建的一种分散的数据存储结构 为什么要使用索引? 索引能极大的减少数据存储引擎需要需要扫描的数据量: 索引能够把随机IO变为数序IO: 索引能够帮助我们 ...
- angular4模块中标签添加背景图
一.现象 一个全屏的“走马灯”每项需要添加背景图,在循环标签里需要动态添加行内样式 二.解决 1.首先有一个图片数组,如: export class AppComponent { array = [& ...
- 教你如何用ps制作紫色光斑效果
1.新建800x800画布 2.设置前景色和背景色分别为#b38adb ,#212121;执行"滤镜"-"渲染"-"云彩"操作 3.执行&q ...
- java的基本数据类型和引用类型
一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768 ...
- 《修炼之道:.NET开发要点精讲》读书笔记(四)
委托的作用:1)它允许把方法作为参数,传递给其它的模块:2)它允许我们同时调用多个具有相同签名的方法:3)它允许我们异步调用任何方法. “方法签名”指方法的参数个数.参数类型以及返回值等,具有相同签名 ...
- shell逻辑运算总结, 包括[[]]与[]的区别,&&与-a的区别,||与-o的区别
1. 关于文件和目录 -f 判断某普通文件是否存在 -d 判断某目录是否存在 -b 判断某文件是否块设备 -c 判断某文件是否字符设备 -S 判断某文件是否socket(待修正) -L 判 ...
- python语法之正则
1.正则表达式是用来干嘛的? 用来匹配字符串的 ,其中正则是意思是模糊匹配. 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通 ...