zoukankan      html  css  js  c++  java
  • JavaScript高程读书笔记

    第三章
    3.6
    switch语句
    1.与else if 相似,符合即跳出;
     
    2.if if if全判断
     
    3.7
    1.return代表结束,return后的语句不执行
     
    2.arguments[0]代表空函数sayHi( )第一个参数的值,又sayHi(12){alert(arguments.length)}    //1
     
    3.arguements永远与对应的值同步,例如sayHi(1,2)那么arguements[0]=1
     
    4.严格模式下,arguements 无效
     
    5.JavaScript不存在函数签名所以,没有重载
     
    6.基本类型包括:undefined/null/string/Boolean/number(栈内存)占据空间
       引用类型:object(堆内存)指针
     
     
    第四章、变量,作用域和内存问题
    4.1
    1.不能给基本类型增加属性
         var name="baby";
         name.age=27;
         alert(name.age);    //undefined
     
       可以给引用类型增加属性
         var name=new Object( );
         name.age=27;
         alert(name.age);    //27
     
    2.复制
       基本类型复制:实质是创造一个副本。
       引用类型复制:实质是创造一个副本指针,指向某个对象。
     
    3.所有函数的参数是按值传递的,而不是按引用传递。
       因为访问变量有按值和按引用两种方式,而参数只能按值传递。
     
    4.数据类型检测:基本类型用 typeof,引用类型用 instanceof 
     
    5.作用链的作用:保证对执行还境有权访问的所有变量和函数的有序访。
                           全局执行环境的变量对象始终是作用域链的最后一个对象。
     
    4.2
     
    1.JavaScript没有块级作用域。
     
    2.作用域分界线:function();
       开辟作用域:with / try / catch;
     
    3.ES6新增块级作用域:let,concat
       var存在变量提升,而let没有。
     
    4.执行环境:某个执行环境执行完,就被销毁,包括其中的变量和函数,而全局执行环境知道应用退出或者浏览器关闭时销毁。
     
    4.3
    1.垃圾回收方式:标记清除 和 引用计数
     
    第五章
    5.1object类型
    1.object类型有两种:new object()构造函数 和 var name = { json }
     
    5.2 array类型
    1.object类型有两种:同上
     
    2.数组从0开始,index也是从0开始
     
    3.length能用于限制长度,从而使得之后的值undefined
     
    4.所有对象都具有:totoLacalString( ),toString( )和value( )方法。
     
    5栈方法 push( ) , pop( ),后进先出,如阶乘递归,从后插入
     
    6.队列方法 shift() unshift(),先进先出,从前插入
     
    7.重排序方法 reserse() sort()如果是英文,则比较首字母的顺序
      
     function compare(a,b){
         return  b-a;
    }
     
    8.操作方法 concat()slice()splice()
        .concat("",[ ])先复制数组,然后把新的内容插入到副本最后,不影响原数组;
        .slice( 起始位置,[ 结束位置,不包含自身 ] )返回的是原数组某个范围的项,不影响原数组;
        .splice()方法始终返回一个数组,即移除项或者替换项,
         删除  .splice(起始位置,要删除的项数)
         插入  .splice(起始位置,要删除的项数 ,插入的内容)
         替换  .splice(位置,要删除的项数 ,插入的内容)
     
    9.位置方法 indexOf(查找项,起始位置) lastIndexOf(查找项,起始位置 )
       查找项要求严格相等,返回索引值。
       0开始,不存在返回-1;
     
    10.迭代方法  :  every(function,[ 作用域对象 ])some()   foreach()map()  filter()
         每个方法接受两个参数。
         function( 数组项的值,index,数组本身)
         every()要求数组所有项满足函数条件,返回Boolean
         some()要求部分项满足函数条件,返回Boolean
     
         filter()返回满足条件项的值,用于查询某些项是否存在
     
         foreach()只是对数组每项传入一个函数方法并执行,没返回值,类似for循环
         和foreach()不同的是map()执行函数并返回数组。
     
    11.归并方法 reduce(function,[ value ])reduceRight()
              
                var num=[1,2,3,4,5];
                var sum=reduce ( function ( prev , cur , index , array ){
                        return prev+cur;
                });
                alert(sum);  //15
     
     
    5.5  function类型
    1、定义函数的方法:①function name(){} ,
                              ②var name=function(){};  ,
                              ③var name=new Function(){}
     
    函数是对象,函数名是指针。
     function A(function B,传给前面function的参数)
     
    2、函数内部属性包含两个特殊对象:arguements 和 this
         
         arguments:
        
         function A(a){
         arguments.callee(a-1);
         }
     
         arguments.callee指向的是function A
          
         经典的递归
         
         function plus(num){
              if(num=1){
                      return 1;
              }else{
                      return num*plus(num-1);
                      }
         }
     
         this: P115
         caller:
         
    function outer(){
        inner();
    }
    function inner(){
        alert(inner.caller);
    }
    outer();   // function outer
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    招财铃计划 与 实现,
    present, visible,覆盖,系统行为,
    windows,navigationcontroller,stausbar, 20,充满,
    CSS伪类选择器:is、not
    CSS实现常用组件特效(不依赖JS)
    Iconfont技术
    Axios的基本使用
    axios和ajax,fetch的区别
    axios全攻略
    vue-loader作用
  • 原文地址:https://www.cnblogs.com/yzhweb/p/7511135.html
Copyright © 2011-2022 走看看