`

javascript基础

 
阅读更多

简介:javascript是一门函数式的面向对象编程语言

javascript是由对象和简单类型组成。

1、简单类型:数字、字符串、布尔值、null值和undefined值

2、对象:对象是可变的键控集合,在javascript中,数组、函数、正则表达式都是对象,对象是属性的容器,其中每个属性都拥有名字和值,属性的名字可以是包括空字符串在内的任意字符串,属性值可以是除了undefined值外的任何东西。对象是无类别的。javascript包括一个原型链特性,允许对象继承另一个对象的属性,正确地使用它能减少对象初始化的时间和内存消耗。

1)对象字面量:提供了非常方便地创建新对象值的表示法。一个对象字面量就是包含在花括号内的键值对,可以出现在任何允许表达式出现的地方。属性的值可以从包括另一个对象字面量在内的任意表达式中获得

2)检索

检索对象中包含的值,可以在[]后缀中括住一个字符串的方式或者.表示法,优先考虑后者

若尝试检索一个不存在的成员元素的值,会返回一个undefined值;

||运算符可以用来填充默认值:

    var middle = stooge["middle-name"]||"(none)";

    var status= stooge.status||"unknown";

尝试检索一个undefined值将会导致TypeError异常,可以通过&&运算符来避免错误,

     flight.equipment //undefined

     flight.equipment.model //throw TypeError

     flight.equipment&&flight.equipment.model  //undefined

3)更新

4)引用:对象通过引用传递,它们永远都不会被拷贝

3、原型Prototype

4、反射Reflection

typeof

hasOwnProperty不会检查原型链

5、枚举

for in语句可以用来遍历对象中所有属性名,包括函数和不关心的原型中的属性,可以通过hasOwnProperty和typeof过滤掉不需要的属性和函数。

6、删除

delete运算符用来删除对象的属性,它会移除对象中确定包含的属性,不会触及原型链中的任何对象。删除对象的属性可能会让来自原型链中的属性浮现出来。

7、减少全局变量的污染

最小化使用全局变量的一个方法是在你的应用中只创建唯一一个全局变量var MYAPP = {};该变量此时变成了你的应用的容器:只要把多个全局变量都整理在一个名称空间下,将显著降低与其它应用程序、组件或类库之间相互影响的可能性。

MYAPP.stooge = {
   "first-name":"Joe",//必须用引号括住属性名
   "last-name":"Howard"
   }
  MYAPP.flight={
   airline:"Oceanic",
   number:815,
   departure:{
    IATA:"SYD",
    time:"2004-09-22 14:55",
    city:"Sydney"
    },
   arrival:{
    IATA:"LAX",
    time:"2004-09-23 10:55",
    city:"Los Angeles"
    }
   };

 

8、函数对象

对象字面量产生的对象连接到Object.prototype,函数对象连接到Function.prototype。每个函数创建时附有两个附加的隐藏属性,函数的上下文和实现函数行为的代码。函数可以存放在变量、对象和数组中。函数可以被当作参数传递给其他函数,也可以返回函数。

9、函数字面量,可以出现在任何允许表达式出现的地方。

函数对象可以通过函数字面量创建,例如

var add = function(a,b){return a+b;}

函数字面量包括四部分:

1)保留字 function

2)函数名(可以没有,匿名函数)

3)参数:参数被定义为函数中的变量,它们不像不通变量被初始化为undefined,而是在该函数被调用时初始化为实际提供的参数值

4)包围在花括号中的一组语句

5)闭包:通过函数字面量创建的函数对象包含一个连接到外部上下文的连接,这被称为闭包

9、调用

调用函数时除了声明时定义的形式参数,每个函数接收两个附加的参数:this和arguments。当实际参数个数与形式参数的个数不匹配时不会导致运行时错误,若实际参数个数多,超出部分被省略,若实际参数个数少,缺失的参数值会被替换为undefined。

1)方法调用模式:当一个函数被保存为对象的一个属性时,称它为一个方法,调用方法时,this被绑定到该对象。

2)函数调用模式:当一个函数并非一个对象的属性时,例如:  var sum = add(3,4);当在此模式调用时this被绑定为全局对象。这是语言设计上的一个失误,方法不能利用内部函数来帮助它工作,因为内部函数的this被绑定了错误的值

3)构造器调用模式:在一个函数前带上new来调用,那么将创建一个隐藏连接到该函数的prototype成员的新对象,同时this将会被绑定到那个新对象上。

4)Apply调用模式

apply方法构建一个参数数组并用其去调用函数,允许我们选择this的值。apply方法包括两个参数,一个是this值,一个是参数数组。

10、参数

当函数被调用时,可以通过argements参数访问所有它被调用时传递给它的参数列表,包括那些没有被分配给函数声明时定义的形式参数的多余参数,这使的编写一个无须指定参数个数的函数成为可能。

11、返回:函数总是会返回一个值,如果没有指定返回值,则返回undefined。

12、异常

一个try语句只会有一个catch块,若需要处理异常的类型,那么在异常处理器必须检查异常对象的name属性以确定异常的类型

13、给类型增加方法

 javascript允许给语言的基本类型增加方法,通过给Object、函数、数组、字符串、数字、正则表达式和布尔值的原型添加方法可以使该方法对本类型的值都可用。Object、函数、数组、字符串、数字、正则表达式和布尔值都是函数类型。

14、递归

15、全等号(===):不需要转型,等号是需要转型的。

16、闭包:可以访问函数被创建时所处的上下文环境。

作用域的好处是内部函数可以访问定义它们的外部函数的参数和变量(除了this和arguments)。并且内部函数拥有比它的外部函数更长的生命周期。

17、回调:将参数作为参数传递给函数

18、伪类:当一个函数对象被创建时,Function构造器产生的函数对象会运行类似下面的代码

this.prototype={constructor:this};

当采用构造器调用模式,即使用new前缀去调用一个函数时,这将修改函数执行的方式

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    JavaScript基础语法(ppt)

    JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)...

    JavaScript基础教程(pdf版)

    本教程旨在为初学者提供一个全面的JavaScript基础知识学习平台,帮助理解并掌握这种强大的脚本语言。 《JavaScript基础教程》首先会介绍JavaScript的历史背景和基本语法,包括变量、数据类型、操作符、流程控制...

    javascript基础语法总结.pdf

    这个资源是javaScript基础语法的总结,适合学完javascript基础语法的进行巩固、复习! 这...我是想免费给大家看的,这怎么还收费

    JavaScript基础知识例子

    总的来说,这个压缩包提供了一个全面的JavaScript基础知识教程,涵盖了数据类型、Object、内置对象和变量等核心概念,对于初学者或者需要巩固基础的开发者来说,是一份非常有价值的参考资料。通过学习这些内容,可以...

    JavaScript基础与案例开发详解/于坤, 周大庆编著

    《JavaScript基础与案例开发详解》根据JavaScript在各种类型的应用开发中(如B2B、B2C、C2C)的使用情况,有针对性地安排了丰富的案例,从基本的表格操作、表单操作,到构建浏览器端的富文本编辑器,再到实现像Windows...

Global site tag (gtag.js) - Google Analytics