JavaScript 函数语法
JavaScript 函数通过 function 关键词进行定义,其后是函数名和括号 ()。
函数名可包含字母、数字、下划线和美元符号(规则与变量名相同)。
圆括号可包括由逗号分隔的参数:
(参数 1, 参数 2, ...)
由函数执行的代码被放置在花括号中:{}
function name(参数 1, 参数 2, 参数 3) {
要执行的代码
}
函数参数(Function parameters)是在函数定义中所列的名称。
函数参数(Function arguments)是当调用函数时由函数接收的真实的值。
在函数中,参数是局部变量。
在其他编程语言中,函数近似程序(Procedure)或子程序(Subroutine)。
---------------------------------------------------------------
计算两个数的乘积,并返回结果:
var x = myFunction(7, 8); // 调用函数,返回值被赋值给 x
function myFunction(a, b) {
return a * b; // 函数返回 a 和 b 的乘积
}
把华氏度转换为摄氏度:
function toCelsius(fahrenheit) {
return (5/9) * (fahrenheit-32);
}
document.getElementById("demo").innerHTML = toCelsius(77);
toCelsius 引用的是函数对象,而 toCelsius() 引用的是函数结果。
在 JavaScript 函数中声明的变量,会成为函数的局部变量。局部变量只能在函数内访问。
---------------------------------------------------------------
对象方法:对象也可以有方法。方法是在对象上执行的动作。
方法以函数定义被存储在属性中。
var person = {
firstName: "Bill",
lastName : "Gates",
id : 678,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
this 关键词:
在函数定义中,this 引用该函数的“拥有者”。
在上面的例子中,this 指的是“拥有” fullName 函数的 person 对象。
换言之,this.firstName 的意思是 this 对象的 firstName 属性。
访问对象属性
您能够以两种方式访问属性:
objectName.propertyName
或者
objectName["propertyName"]
访问对象方法
您能够通过如下语法访问对象方法:
objectName.methodName()
实例:
name = person.fullName();
---------------------------------------------------------------
请不要把字符串、数值和布尔值声明为对象!
如果通过关键词 "new" 来声明 JavaScript 变量,则该变量会被创建为对象:
var x = new String(); // 把 x 声明为 String 对象
var y = new Number(); // 把 y 声明为 Number 对象
var z = new Boolean(); // 把 z 声明为 Boolean 对象
请避免字符串、数值或逻辑对象。他们会增加代码的复杂性并降低执行速度。
---------------------------------------------------------------
HTML 事件可以是浏览器或用户做的某些事情。
下面是 HTML 事件的一些例子:
HTML 网页完成加载
HTML 输入字段被修改
HTML 按钮被点击
通常,当事件发生时,用户会希望做某件事。
JavaScript 允许您在事件被侦测到时执行代码。
通过 JavaScript 代码,HTML 允许您向 HTML 元素添加事件处理程序。
HTML 事件可以是浏览器或用户做的某些事情。
实例:
<button onclick='document.getElementById("demo").innerHTML=Date()'>现在的时间是?</button>
常见的 HTML 事件
事件...........................描述
onchange...........................HTML 元素已被改变
onclick...........................用户点击了 HTML 元素
onmouseover...........................用户把鼠标移动到 HTML 元素上
onmouseout...........................用户把鼠标移开 HTML 元素
onkeydown...........................用户按下键盘按键
onload...........................浏览器已经完成页面加载
---------------------------------------------------------------
字符串长度及位置
内建属性 length 可返回字符串的长度
indexOf() 方法返回字符串中指定文本[首次]出现的索引(位置)
如果indexOf("China", 18);则指的是从18位置开始搜索第一个出现的字符串位置
lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引
如果未找到文本, indexOf() 和 lastIndexOf() 均返回 -1
search() 方法搜索特定值的字符串,并返回匹配的位置:
两种方法,indexOf() 与 search(),是相等的。
search() 方法无法设置第二个开始位置参数。
indexOf() 方法无法设置更强大的搜索值(正则表达式)。
实例
var str = "The full name of China is the People's *.";
var pos = str.search("locate");
实例
var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
反斜杠转义字符把特殊字符转换为字符串字符:
代码 结果
\b 退格键
\f 换页
\n 新行
\r 回车
\t 水平制表符
\v 垂直制表符
---------------------------------------------------------------
提取部分字符串
有三种提取部分字符串的方法:
slice(start, end)
substring(start, end)
substr(start, length)
slice() 提取字符串的某个部分并在新字符串中返回被提取的部分。
如果某个参数为负,则从字符串的结尾开始计数。
例如slice(-12),指的是 从末尾开始,倒着数12个字符
slice(-13,-7),指的是 从末尾开始数,倒着数13个字符的位置到倒着数7个字符的位置
substring(start, end)不能接受负数
substr的第二个参数表示长度
---------------------------------------------------------------
replace(old,new) 方法用另一个值替换在字符串中指定的值:
注意:不会改变调用它的字符串。它返回的是新字符串,默认的只替换首个匹配
var str = "Please visit Microsoft and Microsoft!";
var n = str.replace("Microsoft", "W3School");
默认地,replace() 对大小写敏感。
如需执行大小写不敏感的替换,请使用正则表达式 /i(大小写不敏感):
实例
str = "Please visit Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3School");
如需替换所有匹配,请使用正则表达式的 g 标志(用于全局搜索):
str = "Please visit Microsoft and Microsoft!";
var n = str.replace(/Microsoft/g, "W3School");
---------------------------------------------------------------
转换为大写和小写
var text1 = "Hello World!"; // 字符串
var text2 = text1.toUpperCase(); // text2 是被转换为大写的 text1
var text2 = text1.toLowerCase(); // text2 是被转换为小写的 text1
concat() 连接两个或多个字符串:
var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ",text2);
所有字符串方法都会返回新字符串。它们不会修改原始字符串。
正式地说:字符串是不可变的:字符串不能更改,只能替换。
trim() 方法删除字符串两端的空白符:
实例
var str = " Hello World! ";
alert(str.trim());
提取字符串字符
这是两个提取字符串字符的安全方法:
charAt(position)
charCodeAt(position) 返回指定索引的字符unicode 编码
var str = "HELLO WORLD";
str.charAt(0); // 返回 H
var str = "HELLO WORLD";
str.charCodeAt(0); // 返回 72
---------------------------------------------------------------
把字符串转换为数组
可以通过 split() 将字符串转换为数组
如果分隔符是 "",被返回的数组将是间隔单个字符的数组:
实例
var txt = "Hello"; // 字符串
txt.split(""); // 分隔为字符