一   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 高级程序设计》读书笔记五 引用类型的更多相关文章

  1. javascript高级程序设计读书笔记-事件(一)

    读书笔记,写的很乱   事件处理程序   事件处理程序分为三种: 1.html事件2. DOM0级,3,DOM2级别  没有DOM1 同样的事件 DOM0会顶掉html事件   因为他们都是属性  而 ...

  2. 《JavaScript高级程序设计》笔记:引用类型(五)

    Object类型 创建object实例方法有两种.第一种方法使用new操作符后跟object构造函数.如下: var person=new Object(); person.name="Ni ...

  3. javascript高级程序设计读书笔记----引用类型

        Array类型. ECMAScript数组的每一项可以保存任何类型的数据. 数组大小是可以动态调整的. 创建数组第一种基本方式方式: 使用Array构造函数 var colors = new ...

  4. JavaScript高级程序设计 读书笔记

    第一章 JavaScript 简介 第二章 Html中使用JavaScript 第三章 基本概念 第四章 变量,作用域,内存 第五章 引用类型 第六章 面向对象 第七章 函数表达式 第八章 BOM 第 ...

  5. javascript高级程序设计读书笔记

    第2章  在html中使用javascript 一般都会把js引用文件放在</body>前面,而不是放在<head>里, 目的是最后读取js文件以提高网页载入速度. 引用js文 ...

  6. Javascript高级程序设计读书笔记(第六章)

    第6章  面向对象的程序设计 6.2 创建对象 创建某个类的实例,必须使用new操作符调用构造函数会经历以下四个步骤: 创建一个新对象: 将构造函数的作用域赋给新对象: 执行构造函数中的代码: 返回新 ...

  7. javascript高级程序设计 读书笔记2

    第五章 引用类型 对象是引用类型的实例,引用类型是一种数据结构,将数据和功能组织在一起.描述的是一类对象所具有的属性和方法.对象是某个特定引用类型的实例,新对象是使用new操作符后跟一个构造函数俩创建 ...

  8. JavaScript高级程序设计-读书笔记(7)

    第22章 高级技巧 1.高级函数 (1)安全的类型检测 在任何值上调用Object原生的toString()方法,都会返回一个[object NativeConstructorName]格式的字符串. ...

  9. JavaScript高级程序设计-读书笔记(2)

    第6章 面向对象的程序设计 创建对象 1.最简单方式创建Object的实例,如 var person = new Object(); person.name = “Greg”; person.age ...

  10. JavaScript高级程序设计-读书笔记(1)

    第1章 JavaScript简介 JavaScript是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成: l        ECMAScript:提供核心语言功能: l        文 ...

随机推荐

  1. SQL查询中连接--学习

    一.开头说 不出意外,还是先说下SQL中所有的联接类型: 内连接.外连接(左连接.右连接 .全连接).交叉连接 然后接下来就是依次学习下各种连接的使用效果 二.各种连接秀 首先准备两张表   学生表: ...

  2. 笔记之monkey自定义脚本

    自定义脚本的稳定性测试 常规MOnkey测试执行的是随机的事件流,但如果只是想让Monkey测试某个特定场景者时候就需要用到自定义脚本,Monkey支持执行用户自定义脚本的测试,用户之需要按照Monk ...

  3. 转载:如何优雅的实现INotifyPropertyChanged接口

    转载来源:http://www.cnblogs.com/TianFang/p/6240933.html 如何优雅的实现INotifyPropertyChanged接口 INotifyPropertyC ...

  4. 炫酷MD风之dialog各种对话框

    这个demo也是我从别人那里学来的,不是本人写的代码,我也是个MD初学者.把这个demo分享给看到的你,希望对你有帮助. 直接上图: demo地址:百度网盘:链接:https://pan.baidu. ...

  5. 编辑gif

    在撰写文档的过程中,为了清晰的表述我们的内容经常会加入一些图片.对于 `.jpg` 或 `.png` 的静态图我们可以直接 使用windows自带的照片编辑器编辑即可.对于如 licecap 录制出来 ...

  6. jQuery基础方法:each(),map(),index(),is()

    jQuery的each()方法和forEach()的区别: each()返回调用自身的jQuery对象,可用于链式调用 $('div').each(function(idx){ //找到所有div元素 ...

  7. Eclipse Maven: Cannot change version of project facet Dynamic web to 3.0 的解决方法

    在 Eclipse 中创建 Maven web 项目的时候使用 maven-artchetype-webapp 骨架,但是这个 catalog 比较老,用的 servlet 还是 2.3 在 Proj ...

  8. Python之路(第三十九篇)管道、进程间数据共享Manager

    一.管道 概念 管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信. 先画一幅图帮助大家理解下管道的基本原理 现有2个 ...

  9. RT-thread-------------------信号量

    信号量:用于解决线程间同步问题的内核对象,线程可以获取或释放它,从而达到同步或互斥的目的.(互斥量只能由持有线程释放,而信号量则可以由任何线程释放) 在rtt中,信号量分为计数型信号量和二值信号量(作 ...

  10. angular4.0懒加载

    用angular4.0进行前后端分离已经好几个月了,现在接近了尾声,pc端和移动端.可是却还存在着很多问题,最近这几天一直在研究懒加载问题,因为通过ng build --prod打包后主文件很大,有2 ...