JavaScript语法
2015-06-12 16:07
573 查看
1. 变量的定义和作用域
var a = 1; 类型为Number
var a = "1"; 类型为String
Number和String都是JS内置的对象。
作用域: 在函数外面定义--全局; 在方法内部定义--在方法体内有效。
变量是弱类型的,整数与字符串相加得到字符串。
不区分单引号和双引号;
2.语句、代码和代码块
JavaScript是发出的指令。每行句尾可以加上分号,多句同一行需要用分号隔开。代码块是用来更好的组织代码的。代码块使用花括号包裹。
3.注释
单行注释://
多行注释:/*开头,*/结尾
4.运算符
1) 算术符号:+、-、*、/、%(取余,保留整数)、++、--
说明:/除不尽有小数,能除尽为整数。JS不区分整数小数?
2)赋值运算符:=、+=、-=、*=、/=、%=
3)比较运算符:==、===(全等,值和类型)、!=、>、<、>=、<=
4)逻辑运算符:&&、||、!
5)条件赋值: ? :
5.分支语句
1)if...else... if...else if...else
2)switch...case...
switch():判读的类型无限制。c中就只能是int型和char('a')型。
default不匹配条件时的操作。
6.循环语句
1)for(var a = 0; a < 10; a++)
2)while(a < 10) { a++ } ; do { a-- } while(a>0)
break:退出循环; continue:跳到下次循环。
3) for/in - 循环遍历对象的属性
1) 函数需要返回值时,用return即可。
2) 函数可以在HTML事件/ FORM / JavaScript 中被调用,如:
a. HTML元素事件回调: <body onload="goToUrl('http://www.baidu.com')" > b. FORM元素事件回调 <select name="somelist" onchange="onSomeThingChanged()">
c. 超链接目标
<a href="javascript:goToUrl('www.baidu.com')" > go </a>
d. 直接在JavaScript中调用 <script> goToUrl(”www.baidu.com"); </script>
8. 类
一般的JavaScript是不需要使自定义类,不会这么复杂。难调试,不便阅读。如果一定要写什么复杂的功能,如菜单树之类的,就得写一点类来完成了。
1) 类定义
a. 不带参数
2)创建类的实例
var item = new MenuItem("haha", "http://www.baidu.com", null);
3)类需要注意
a. 在成员函数里引用成员变量,一定要加this.,不然引用不到
b. 成员函数如果想返回值,就用return,想return什么类型都不必事先声明,直接return就好
c. 对于学习C++和Java的程序员来说,要明白var p = new SomeClass();这句中的new其实就是创建一个对象并返回其指针
d. 考虑使用Object类
9. Object类
大多数情况下都不需要自己声明一个类,可以直接使用Object类来定义一个结构,而无需事先声明这个结构的形式。
push 方法将新元素添加到一个数组中,并返回数组的新长度值。
arrayObj.push([item1 [item2 [. . . [itemN ]]]])
参数:
arrayObj--必选项。一个 Array 对象。
item, item2,. . . itemN--可选项。该 Array 的新元素。
说明:
push 方法将以新元素出现的顺序添加这些元素。如果参数之一为数组,那么该数组将作为单个元素添加到数组中。如果要合并两个或多个数组中的元素,请使用 concat 方法。
2) 删除元素
pop 方法
移除数组中的最后一个元素并返回该元素。
arrayObj.pop( )
必选的 arrayObj 引用是一个 Array 对象。
说明
如果该数组为空,那么将返回 undefined。
shift 方法
移除数组中的第一个元素并返回该元素。
arrayObj.shift( )
必选的 arrayObj 引用是一个 Array 对象。
说明
shift 方法可移除数组中的第一个元素并返回该元素。
从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。
arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
参数:
arrayObj--必选项。一个 Array 对象。
start--必选项。指定从数组中移除元素的开始位置,这个位置是从 0 开始计算的。
deleteCount--必选项。要移除的元素的个数。
item1, item2,. . .,itemN--必选项。要在所移除元素的位置上插入的新元素。
说明:
splice 方法可以移除从 start 位置开始的指定个数的元素并插入新元素,从而修改 arrayObj。返回值是一个由所移除的元素组成的新 Array 对象。
如果你不想增加新的元素进去,那么不要传递第三个参数即可!
concat 方法 (Array)
返回一个新数组,这个新数组是由两个或更多数组组合而成的。
array1.concat([item1[, item2[, . . . [, itemN]]]])
参数:
array1 --必选项。其他所有数组要进行连接的 Array 对象。
item1,. . ., itemN--可选项。要连接到 array1 末尾的其他项目。
说明:
concat 方法返回一个 Array 对象,其中包含了 array1 和提供的任意其他项目的连接。
要加的项目(item1 … itemN)会按照从左到右的顺序添加到数组。如果某一项为数组,那么添加其内容到 array1 的末尾。如果该项目不是数组,就将其作为单个的数组元素添加到数组的末尾。
以下为从源数组复制元素到结果数组:
对于从正被连接到新数组的数组中复制的对象参数,复制后仍然指向相同的对象。不论新数组和源数组中哪一个有改变,都将引起另一个的改变。
对于连接到新数组的数值或字符串,只复制其值。一个数组中值有改变并不影响另一个数组中的值。
执行顺序与生命周期
1) 从上到下依次执行/解析,调用一个function时,必须保证该function已经被解析/声明了。这就是一般要把function定义在<head>的原因。
2) 所有的function与变量只在本页面内有效,当离开页面后,新的页面内无法访问上一页内声明的变量或函数。如果一定要访问,可以使用Cookie也存一下,到下一页再读出来。
var a = 1; 类型为Number
var a = "1"; 类型为String
Number和String都是JS内置的对象。
作用域: 在函数外面定义--全局; 在方法内部定义--在方法体内有效。
变量是弱类型的,整数与字符串相加得到字符串。
不区分单引号和双引号;
2.语句、代码和代码块
JavaScript是发出的指令。每行句尾可以加上分号,多句同一行需要用分号隔开。代码块是用来更好的组织代码的。代码块使用花括号包裹。
3.注释
单行注释://
多行注释:/*开头,*/结尾
4.运算符
1) 算术符号:+、-、*、/、%(取余,保留整数)、++、--
说明:/除不尽有小数,能除尽为整数。JS不区分整数小数?
2)赋值运算符:=、+=、-=、*=、/=、%=
3)比较运算符:==、===(全等,值和类型)、!=、>、<、>=、<=
4)逻辑运算符:&&、||、!
5)条件赋值: ? :
variablename=(condition)?value1:value2
5.分支语句
1)if...else... if...else if...else
2)switch...case...
switch():判读的类型无限制。c中就只能是int型和char('a')型。
default不匹配条件时的操作。
6.循环语句
1)for(var a = 0; a < 10; a++)
2)while(a < 10) { a++ } ; do { a-- } while(a>0)
break:退出循环; continue:跳到下次循环。
3) for/in - 循环遍历对象的属性
var person={fname:"John",lname:"Doe",age:25}; for (x in person) { txt=txt + person[x]; }7.函数
<script> function goToUrl(strUrl) { location.href = strUrl; } <pre name="code" class="html"><script>
1) 函数需要返回值时,用return即可。
2) 函数可以在HTML事件/ FORM / JavaScript 中被调用,如:
a. HTML元素事件回调: <body onload="goToUrl('http://www.baidu.com')" > b. FORM元素事件回调 <select name="somelist" onchange="onSomeThingChanged()">
c. 超链接目标
<a href="javascript:goToUrl('www.baidu.com')" > go </a>
d. 直接在JavaScript中调用 <script> goToUrl(”www.baidu.com"); </script>
8. 类
一般的JavaScript是不需要使自定义类,不会这么复杂。难调试,不便阅读。如果一定要写什么复杂的功能,如菜单树之类的,就得写一点类来完成了。
1) 类定义
a. 不带参数
<script> function SampleClass() { // 变量变量定义 this.nId = 10; // 成员函数定义 this.plusId = function (nPlus) { return this.nId + nPlus; } } </script>b. 带参数
function MenuItem(l, h, t) { this.label = l; this.href = h; this.target = t; this.toHtml = function() { var html = "<a href='" + this.href + "' "; if(this.target != null) html += (" target='" + this.target + "' "); html += " >" + this.label + "</a>"; return html; } }
2)创建类的实例
var item = new MenuItem("haha", "http://www.baidu.com", null);
3)类需要注意
a. 在成员函数里引用成员变量,一定要加this.,不然引用不到
b. 成员函数如果想返回值,就用return,想return什么类型都不必事先声明,直接return就好
c. 对于学习C++和Java的程序员来说,要明白var p = new SomeClass();这句中的new其实就是创建一个对象并返回其指针
d. 考虑使用Object类
9. Object类
大多数情况下都不需要自己声明一个类,可以直接使用Object类来定义一个结构,而无需事先声明这个结构的形式。
function createObject() { var obj = new Object(); obj.x = 10; obj.y = 11; return obj; }这个函数随意的创建了一个object,为其添加成员 x, y,并没有通知任何人(无prototype声明)。而使用者也是直接就可以调用其 o.x , o.y
<script> var o = createObject(); document.writeln("x=" + o.x + ", y=" + o.y); </script>10. 数组Array
<script> // 创建 var a = new Array(); // 遍例 for(var i=0; i<a.length; i++) { var e = a[i]; } // 添加 var item = new MenuItem("000"); this.itemArray.push(item); </script>数组作为成员变量
function Menu() { this.itemArray = new Array(); this.addItem = function(l, h, t) { var item = new MenuItem(l,h,t); this.itemArray.push(item); }; }1) 添加元素
push 方法将新元素添加到一个数组中,并返回数组的新长度值。
arrayObj.push([item1 [item2 [. . . [itemN ]]]])
参数:
arrayObj--必选项。一个 Array 对象。
item, item2,. . . itemN--可选项。该 Array 的新元素。
说明:
push 方法将以新元素出现的顺序添加这些元素。如果参数之一为数组,那么该数组将作为单个元素添加到数组中。如果要合并两个或多个数组中的元素,请使用 concat 方法。
var arr = new Array(0,1,2,3,4); // 参数是一个或多个 var len = arr.push(5,6); //len = arr.push(7); for(var i=0;i<arr.length;i++){ alert(arr[i]); }
2) 删除元素
pop 方法
移除数组中的最后一个元素并返回该元素。
arrayObj.pop( )
必选的 arrayObj 引用是一个 Array 对象。
说明
如果该数组为空,那么将返回 undefined。
shift 方法
移除数组中的第一个元素并返回该元素。
arrayObj.shift( )
必选的 arrayObj 引用是一个 Array 对象。
说明
shift 方法可移除数组中的第一个元素并返回该元素。
var arr = new Array(0,1,2,3,4); var remove = arr.pop(); alert(remove); alert(arr.length);splice 方法
从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。
arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
参数:
arrayObj--必选项。一个 Array 对象。
start--必选项。指定从数组中移除元素的开始位置,这个位置是从 0 开始计算的。
deleteCount--必选项。要移除的元素的个数。
item1, item2,. . .,itemN--必选项。要在所移除元素的位置上插入的新元素。
说明:
splice 方法可以移除从 start 位置开始的指定个数的元素并插入新元素,从而修改 arrayObj。返回值是一个由所移除的元素组成的新 Array 对象。
如果你不想增加新的元素进去,那么不要传递第三个参数即可!
var arr = new Array(0,1,2,3,4); // 删除从2开始的两个元素,位置从0开始 // 返回移除元素的数组 var reArr = arr.splice(2,2); // 可以在移除元素的位置替换新的元素进去 //只是从移除开始位置进行增加新元素,如果你移除两个元素,你完全可以增加10个新元素进去 //var reArr = arr.splice(2,2,6,7,8,9); for(var i=0;i<arr.length;i++){ alert(arr[i]); }
concat 方法 (Array)
返回一个新数组,这个新数组是由两个或更多数组组合而成的。
array1.concat([item1[, item2[, . . . [, itemN]]]])
参数:
array1 --必选项。其他所有数组要进行连接的 Array 对象。
item1,. . ., itemN--可选项。要连接到 array1 末尾的其他项目。
说明:
concat 方法返回一个 Array 对象,其中包含了 array1 和提供的任意其他项目的连接。
要加的项目(item1 … itemN)会按照从左到右的顺序添加到数组。如果某一项为数组,那么添加其内容到 array1 的末尾。如果该项目不是数组,就将其作为单个的数组元素添加到数组的末尾。
以下为从源数组复制元素到结果数组:
对于从正被连接到新数组的数组中复制的对象参数,复制后仍然指向相同的对象。不论新数组和源数组中哪一个有改变,都将引起另一个的改变。
对于连接到新数组的数值或字符串,只复制其值。一个数组中值有改变并不影响另一个数组中的值。
var arr = new Array(0,1); var arr2 = new Array(3,4); var arr = arr.concat(arr2); for(var i=0;i<arr.length;i++){ alert(arr[i]); }
执行顺序与生命周期
1) 从上到下依次执行/解析,调用一个function时,必须保证该function已经被解析/声明了。这就是一般要把function定义在<head>的原因。
2) 所有的function与变量只在本页面内有效,当离开页面后,新的页面内无法访问上一页内声明的变量或函数。如果一定要访问,可以使用Cookie也存一下,到下一页再读出来。
相关文章推荐
- 看看这些JavaScript题目你会做吗?
- js数组与 json 的区别
- ExtJS 2.2事件机制(详细)
- JSP之九大隐藏对象
- js函数toFixed 小数保留指定多少位小数
- JSP Cookie的创建与读取
- json
- JS函数内部属性:arguments
- JavaScript 创建对象
- [js开源组件开发]ajax分页组件
- 在.NET使用Newtonsoft.Json转换,读取,写入json
- JS中给数组对象排序
- JavaScript
- JavaScript prototype 属性详解
- JavaScript面向对象编程——构造函数继承
- html table表数据转Json格式
- 【原生js】js面向对象三大特征之封装笔记
- 学习Javascript闭包(Closure)
- 什么是JavaScript?
- Javascript类型转换表