学习感悟1

今天开学重新开始再看一遍红宝书,上学期看了一遍没看懂(尴尬。。),重新开始仔细梳理了一下,写一下今天的感悟。

1.var声明的变量会自动被添加到最接近的环境中

function add (num1,num2) {
       var sum = num1 + num2;
       return sum; 
    }
    alert(sum);// sum不是有效的变量,无效会导致错误


function add (num1,num2) {
       sum = num1 + num2;
       return sum; 
    }
    alert(sum);// sum有效

2.Ecmascript定义了六种数据类型,包括五种简单数据类型(null,number,string,undefined,boolean)和一种复杂数据类型(object)

3.null数据类型为object

4.var声明变量但为初始化,其值为undefined;

var a;
alert(a == undefined);//true

5.Ecmascript中单引号和双引号没什么区别

6.将某个值转换为字符串

var a = 11;
typeof a;//number
var s=""+a;
typeof s;//string

7.逗号操作符还可以用于赋值,在用于赋值时,逗号操作符总会返回表达式的最后一项

var num=(1,2,3,4);
num;//4

8.我们不能给基本类型添加属性(除object)

var name="sun";
name.age=21;
alert(name.age)//undefined;

9.对象是按值传递的

function setname(obj){
        obj.name = "sun";
        obj = new Object();
        obj.name = "che";
}
var person = new Object();
setname(person);
alert(person.name)//sun

10.if语句的变量声明会将变量添加到当前的执行环境

if(true){
     var color="blue";
}
alert(color);//blue

11.简单排序功能

var a = [0,1,5,2,10,15];
function b(v1,v2){
    return v2-v1;
}
b.sort(a);//15,10,5,2,1,0

12.Ecmascript操作数组有迭代方法(every,filter,foreach,map,some..),转换方法(toString,valueOf..),栈方法(pop,push(后进先出)),队列方法(push,shift(先进先出)),重排序方法(reverse,sort..),操作方法(concat..slice,splice),位置方法(indexOf,lastIndexOf..),归并方法(reduce..)(还真是多。。)

13.date类型方法太多太繁杂,用的时候再翻吧。。

14.function类型没有重载,出现了同名函数,后面的覆盖前面的函数,在函数内部有两个特殊的对象:arguements和this(重点理解,过两天专门写一个详解this,重点理解下)

15.call,apply,bind真正增强大的地方是能扩充函数赖以生存的作用域

16.charCodeAt()这个方法很好玩,返回函数的字符编码。

  

原文地址:https://www.cnblogs.com/yanwei-sun/p/5229131.html