JavaScript高级程序设计笔记(3)_基本概念

来源:互联网 发布:php一键安装包 编辑:程序博客网 时间:2024/05/21 21:44

语法

借鉴了C以及类C语言

区分大小写

一切变量函数名和操作符都是区分大小写的(例:typeof是关键字但是typeOf不用)

标识符

标识符是变量,函数,属性,或者函数的参数。

第一个字符必须一个字母,下划线以及$

其他可以是字母,下划线,数字或者$

标识符中的字母也可以包含扩充的ASCII或者Unicode字符,采用驼峰大小写格式

严格模式“use strict”

数据类型

5种基本数据类型:Undefined,Null,Boolean,Number和String

1种复杂数据类型:Object

typeof是一个操作符而不是函数

null被认为是一个空的对象引用

undefined类型

object类型

Constructor:保存着用于创建当前对象的函数,对于前面的例子而言,构造函数Object()

hasOwnProperty(propertyName):用于检测给定属性在当前对象实例中(而不是在实例的原型中是否存在)

propertyName是字符串

isPropertyOf(object):用于检测传入对象是否是另一个对象的原型

propertyIsEnumerable(propertyName):用于检测给定的属性是否能够使用for-in语句来枚举

toLocalString():返回对象的字符串表示,该字符串与执行环境的地区对应

toString():返回对象的字符串表示

valueOf():返回对象的字符串数值或者布尔值表示

相等操作符

相等和不相等——先转换再比较

== &!=两个操作符都会先转换操作数(强制转型),然后再比较相等性。

转换包括:布尔值转数值(false-0,true-1),字符串转数值,对象的valueOf()

进行比较之前其中

null和undefined是相等的null==undefined

比较相等性之前,不能将null和undefined转换成其他值

NaN不和任何操作数相等

两个都是对象那么看是不是同一个对象。

全等和不全等——仅比较而不转换

数据类型也要比

语句

if,do-while,while,for,switch

for-in

for(property in expression) statement

举例:

for(var propName in window){

document.write(propName);

}

使用for-in循环显示BOM中window对象的所有属性,其中var为了保证局部变量。

!如果是null或者undefined会抛出错误或者ES5之后只是不执行循环体

label语句

label:语句

一般都和for等循环语句配合使用

break和continue语句

break语句会立即退出循环,强制继续执行循环后面的语句

continue语句也是立即退出,但是退出后会从循环的顶部继续执行。

with语句

with(expression) statement;

with语句作用是将代码的作用域设置到一个特定的对象中

目的:简化多次编写同一个对象的工作


函数

调用函数:函数名(参数);

位于return语句之后的任何代码不会执行,遇到return就会执行后停止并退出。

一个函数可以有多个return,return语句可以不带任何返回值(停止后会返回undefined)

严格模式对函数有一些限制:不能把函数和参数命名为eval或者arguments,不能出现两个命名参数同名情况。

理解参数

ECMAScript中的参数在内部是用一个数组来表示的,函数接受到的是这个数组。所以定义的函数接受两个参数也可以传递一个或者三个等等。

函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给参数的每一个参数。

ECMAScript中的所有参数传递的都是值,不可能通过引用传递参数。

没有重载

ECMAScript没有函数签名(接受的参数的类型和数量),因为其参数包含另个或者多个值的数组来表示的,就做不到重载。


阅读全文
0 0