zoukankan      html  css  js  c++  java
  • js高程笔记4-5章

    第四章 变量/作用域和内存问题

    1.从一个变量给另一个变量赋值时,如果是赋基本类型值,是创建一个值副本,两个变量操作互不影响。如果是赋引用类型值,是创建一个引用(指针)的副本。两个变量指向同一个对象,操作互相会影响。

    2.函数传参时,如果传基本类型值,函数局部作用域修改值不会再全局作用域体现出来。传引用类型值,局部作用域修改对象会在全局作用域体现出来。P71

    3.检测基本数据类型用typeof,检测引用类型值时,想知道是什么类型的对象,用instanceof。

    4.js没有块级({})作用域,一个function里的变量都是透明的。

    5.确保占用最少的内存可以让页面获得更好的性能。而优化内存占用最好的方式,是为全局变量和全局对象的属性解除引用——不再用时将值设置为null。

    第五章 引用类型

    1.引用类型有Object、Array、Date、RegExp、Function(函数实际上是实例)、基本包装类型(Boolean、Number、String)、Global、Math。

    2.所有对象都具有toLocaleString(),toString(),valueOf()方法。

    3.引用类型Object的表示方法有两种:

     1 //构造函数方法
     2 var person = new Object();
     3 person.name = "xiaoming";
     4 person.age = 29;
     5 
     6 //对象字面量方法
     7 var person = {
     8     name : "xiaoming",
     9     age : 29
    10 };

    4.引用类型Array每一项可以保存不同类型的数据,它的表示方法有两种:

    1 //构造函数方法
    2 var color = new Array();
    3 var color = new Array(3);
    4 var color = new Array("red","blue","green");
    5 
    6 //数组字面量
    7 var color = [];
    8 var color = ["red","blue","green"];

    5.数组的各种方法:

    转换方法:toString()返回数组用逗号拼接的字符串

         join()返回用指定符号拼接的数组的字符串

       栈方法:push()尾部插项,返回数组长度,

           pop()尾部删项,返回被删项。

    队列方法:shift()头部删项,返回被删项,

         unshift()头部插项,返回数组长度。

    排序方法:reverse()反转数组,

         sort()默认按字符比较方法排序,可以加比较函数。P93

    操作方法:concat()将两个数组合并,返回新数组,不改变原来数组

         slice()取数组指定下标的一部分,返回新数组,不改变原来数组

         splice(a,b,c....)在a位置上开始删除b个数,并将c...等插进a的位置,返回的是被删除的数的数组,改变原来的数组。

    位置方法:indexOf()返回指定值的下标

         lastIndexOf()从末尾往前找,但下标还是从头开始数

    迭代方法:every()设置回调函数,如果每项都符合条件,返回true

           some()设置回调函数,如果有一项符合条件,返回true

         filter()设置回调函数,返回符合条件的项的新数组

         map()设置回调函数,对所有项执行相同操作,返回新数组

         forEach()设置回调函数,遍历数组,返回结果

          (回调函数参数都是value,index,array)

    归并方法:reduce()设置回调函数,对数组项进行迭代,返回结果。

           reduceRight()设置回调函数,从末尾开始迭代。

          (回调函数参数都是previous,current,index,array)

    6.RegExp类型可以用字面量定义,也可以用构造函数定义(双重转义)

    7.RegExp类型的方法:exec()和test()

    8.函数名仅仅是指向函数对象的指针,函数定义方法有两种:

    1 //函数声明
    2 function sum(a,b){
    3     return a+b;
    4 }
    5 
    6 //函数表达式
    7 var sum = function(a,b){
    8     return a+b;
    9 };

    9.函数名只是函数类型的一个变量,声明两个同名函数只是将变量替换,因此函数没有重载,也因此函数可以作为值通过函数名这个变量被传递和返回。

    10.函数内部有两个对象:arguments和this

      arguments是函数参数数组,arguments.callee指向函数。

      this指向当前执行的环境对象。

    11.函数作为对象,有自己的属性和方法。

      属性:length命名参数的个数。

         prototype保存所有实例的方法。

      方法:apply()和call()功能一样,区别在于函数第二个参数call是逐个列出参数,apply可以使用数组。这两个函数的重要作用是扩充函数作用域。P117和P114的栗子

         bind()绑定(手动指定)函数的作用域。

    12.基本包装类型不建议显式创建(使用new),在创建使用相应的基本类型值时,后台会自动创建相应的基本包装类型。

    13.基本包装类型String方法:

    字符方法:charAt()返回指定位置的字符

         可以使用[]像数组一样访问字符

         charCodeAt()返回指定位置字符的编码

    操作方法:concat()将多个字符串拼接起来,返回新字符串

         slice()返回指定范围的子字符串。传入负数时,将负数和原字符串长度相加

         substr()返回指定起点和长度的子字符串。传入负数时,将第一个参数加上字符串长度,第二个参数变为0.

         substring()返回指定范围的子字符串。传入负数时,将参数变为0

    位置方法:indexOf()返回指定子字符串的位置,没匹配返回-1

         lastIndexOf()返回指定子字符串的位置,从后往前搜索,下标还是从头数

         trim()返回字符串的副本,删除前置和后缀所有空格

    大小写转换方法:toLowerCase(),toLocaleLowerCase(),toUpperCase(),toLocaleUpperCase()

    模式匹配方法:match()传入正则表达式,返回匹配项和捕获组匹配项的数组

           search()传入正则表达式,返回第一个匹配项的位置,没匹配返回-1

           replace()用字符串替换原字符串的部分。返回新字符串

           split()将字符串按特定字符分割成字符串数组

    localeCompare()方法:传入字符串,比较参数字符串和原字符串,如果原字符串在字母表排在前面,返回负数,相等返回0,否则返回正数。

    fromCharCode()方法:传入一个或多个字符编码,返回字符串。

    14.Global对象,是单体内置对象,本身就存在,不用手动实例化。浏览器将这个全局对象作为window对象的一部分加以实现。例如Object、Array、String、Global、Math。

    URI编码方法:encodeURI(),encodeURIComponent(),decodeURI(),decodeURIComponent()

    eval()方法

    15Math对象,相关方法:min(),max(),ceil(),floor(),round(),random()...

  • 相关阅读:
    120. Triangle
    Effective C++ 条款36 绝不重新定义继承而来的non-virtual函数
    Effective C++ 条款31 将文件中间的编译依存关系降至最低
    Effective C++ 条款35 考虑virtual函数以外的其他选择
    Effective C++ 条款34 区分接口继承和实现继承
    Effective C++ 条款33 避免遮掩继承而来的名称
    Effective C++ 条款32 确定你的public继承塑模出is-a关系
    Effective C++ 条款30 透彻了解inlining的里里外外
    Effective C++ 条款29 为"异常安全"而努力是值得的
    Effective C++ 条款28 避免返回handles指向对象内部成分
  • 原文地址:https://www.cnblogs.com/little-jelly/p/5742745.html
Copyright © 2011-2022 走看看