《JavaScipt权威指南》学习笔记

来源:互联网 发布:淘宝不能买烟吗 编辑:程序博客网 时间:2024/05/22 14:27
1.数据类型——    原始类型(不可变类型):        数字(10和16进制),        字符串,        布尔值,        特殊原始值:undefined(未定义),null(空)    对象(可变类型):属性的无序集合        Math,        JSON,        location,        localStorage    普通函数:        parseInt(),        isNaN(),        alert()    构造函数:        数组类(Array)        函数类(Function)        日期类(Date)        正则类(RegExp)        错误类(Error)        字符类(String)        对象类(Object)2.变量——    垃圾回收机制,不分类型    函数作用域:只要在函数内任意位置出现过声明(所以函数变量声明最好统一到开头)              因为变量声明和子函数会被提到函数最开头执行    全局作用域:未曾出现过声明则会一层层引用上一个函数作用域的变量,一直到全局对象3.全局对象:window,this(类型:global)4.构造函数:    function fun () {        this.a = "1";        this.b = function() {};    }     //静态变量和静态函数,其实就是给变量fun赋属性    fun.c = "2";    fun.d = function() {};5.函数定义方式:    function a() {}  ——  默认在顶部创建变量a,赋予此函数。手动创建变量a会覆盖,使原方法不能用。    var a = function() {} —— 函数表达式,右边是匿名函数,先定义后使用    var c = a;  —— 将变量a赋给变量c,调用c()同样可以执行6.创建对象:    new构造函数,    普通对象 {} = new Object(),    数组对象 [] = new Array()  设置对象属性和方法:    在构造器中:this.a = "1";              this.b = function() {};    在对象中:object.a/object["a"]="1";            object.b = function() {};  获取对象属性和方法    object.a/object["a"]; object.b()7.常用运算符    typeof:返回类型字符串,对于对象都返回Object    instanceof:判断类型,返回布尔值    eval():参数不是字符串则返回参数,否则执行字符串,返回执行结果           可以eval("({a:1,b:2})")将json字符串转成json对象    delete:删除属性    in:检测属性是否存在(包括继承的属性)    for/in:遍历对象可枚举的属性或数组的成员;会遍历自身的属性,方法,以及继承的属性    JSON.stringify():将对象可枚举的自身属性转为字符串8.存取器属性    var a = {        aa:1,        get cc() {            return this.aa;        },        set cc(value) {            this.aa = value;        }    };    a.cc = 4;    alert(a.cc);//返回48.属性的特性    hasOwnProperty():检测自身属性是否存在    propertyIsEnumerable():检测自身是否属性且可枚举的    Object.keys(对象):返回对象的可枚举的自身属性名称的数组    Object.getOwnPropertyNames(对象):返回对象所有的自身属性名称的数组    Object.defineProperty(b,"aa",{value:2,                                  writable:true,                                  enumerable:false,                                  configurable:true}) :设置对象属性特性    Object.getOwnPropertyDescriptor(b,"aa"):返回对象自身属性的特性的描述,包括value(值),writable(可写性),enumerable(可枚举性),configurable(可配置性)     不可配置详解:        (1)不能编辑可配置性和可枚举性,可将可写性设为false        (2)数据属性和存取器属性不能相互转换,存取器属性不能更改setter和getter方法        (3)属性不能删除6.对象的原型属性    每个对象都从原型对象继承属性,根原型对象就是Object.prototype    指定原型:    Object.create(原型)    为构造函数指定原型属性prototype    获取原型:    Object.getProtorypeOf(对象);    检查原型:    原型.isPrototypeOf(对象)7.对象的类属性    Object.prototype.toString.call(对象):获取类属性8.对象的可拓展性:是否可以添加新属性    判断是否可拓展:Object.esExtensible(对象)——(删改查)    设置为不可拓展:Object.preventExtensions(对象),设置后不可逆转,仍会继承给原型的新属性    判断是否封闭:Object.isSealed(对象)——(改查)    设置为封闭:Object.seal(对象),属性不可拓展,不可配置。不能解封    判断是否冻结:Ojbect.isFrozen(对象)——(查)    设置为冻结:Object.freeze(对象),属性不可拓展不可配置,数据属性为只读7.数组    创建数组:[1,2],new Array(),new Array(1),new Array(1,2)    添加元素:push(),unshift()    删除元素:pop(),shift()    数组的方法:        join() 以参数作为分隔符,将数组转为字符串        reverse() 将数组中的元素颠倒顺序        concat([1,2]) 连接2个数组,返回一个新数组        slice(0,3) 返回一个子数组         splice(a,b,c,d) a:操作的位置,b:删除的个数,c,d:插入的元素 返回被删掉的元素组成的数组        indexOf() 具有给定值的元素的索引        lastIndexOf() 具有给定值的最后一个元素的索引
原创粉丝点击