一、函数
1.JavaScript 函数语法
函数就是包裹在花括号中的代码块,前面使用了关键词 function:
function functionname()
{// 执行代码
}
当调用该函数时,会执行函数内的代码。
可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。
2.调用带参数的函数
在调用函数时,可以向其传递值,这些值被称为参数。
这些参数可以在函数中使用。
可以发送任意多的参数,由逗号 (,) 分隔:
myFunction(argument1,argument2)
变量和参数必须以一致的顺序出现。第一个变量就是第一个被传递的参数的给定的值,以此类推。
<button onclick="myFunction('helloWorld')">点击这里</button><script>function myFunction(hello){document.write(hello);}</script>
二、JavaScript对象
JavaScript中的对象有很多,主要可以分为如下3大类:
第一类:基本对象,我们主要学习Array和JSON和String
第二类:BOM对象,主要是和浏览器相关的几个对象
第三类:DOM对象,JavaScript中将html的每一个标签都封装成一个对象
1.基本对象
1.1 array对象
Array对象时用来定义数组的。常用语法格式有如下2种:
方式1:
var arr1 = new Array(1,2,3,4,5);
方式2:
var arr2 = [5,6,7,8,9];
使用:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// Array对象的定义和使用 var arr1 = new Array(1,2,3,4,5);var arr2 = [5,6,7,8,9];document.write(arr1[0]+"<br>");document.write(arr2[0]+"<br>");</script>
</body>
</html>
特点
与java中不一样的是,JavaScript中数组相当于java中的集合,数组的长度是可以变化的。而且
JavaScript是弱数据类型的语言,所以数组中可以存储任意数据类型的值。接下来我们通过代码来演
示上述特点。
注释掉之前的代码,添加如下代码:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// Array对象的定义和使用 // var arr1 = new Array(1,2,3,4,5);// var arr2 = [5,6,7,8,9];// document.write(arr1[0]+"<br>");// document.write(arr2[0]+"<br>");var arr = [1,2,3,4,5,6,7,8,9,10];arr[20] = 100;document.write(arr[20]+"<br>");document.write(arr.length+"<br>");document.write(arr[18])+"<br>";</script>
</body>
</html>
因为索引18的位置没有值,所以输出内容undefined,当然,我们也可以给数组添加其他类型的值,
添加代码如下:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// Array对象的定义和使用 // var arr1 = new Array(1,2,3,4,5);// var arr2 = [5,6,7,8,9];// document.write(arr1[0]+"<br>");// document.write(arr2[0]+"<br>");var arr = [1,2,3,4,5,6,7,8,9,10];arr[20] = 100;arr[18] = 'A';arr[19] =true;document.write(arr[20]+"<br>");document.write(arr.length+"<br>");document.write(arr[18]+"<br>");document.write(arr[19]+"<br>");</script>
</body>
</html>
属性和方法
Array作为一个对象,那么对象是有属性和方法的,所以接下来我们介绍一下Array对象的属性和方法
官方文档中提供了Array的很多属性和方法,但是我们只学习常用的属性和方法,如下图所示:
属性:
属性 | 描述 |
---|---|
length | 设置或返回数组中元素的数量。 |
方法:
方法 | 描述 |
---|---|
forEach() | 遍历数组中的每个有值得元素,并调用一次传入的函数 |
push() | 将新元素添加到数组的末尾,并返回新的长度 |
splice() | 从数组中删除元素 |
forEach()
arr.forEach(function(e){document.write(e+"<br>");})
或者使用箭头函数
arr.forEach((e)=>{document.write(e+"<br>")})
push()
arr.push(11);document.write(arr);
splice()
有两个参数,第一个参数为从哪个元素开始,第二个参数是删除几个元素
document.write(arr);
arr.splice(2,17);
document.write(arr);
1.2 String字符串
String对象的创建方式有2种:
方式1:
var strr1 = new String("hello world");
方式2:
var strr2 = 'Hello String';
输出:
document.write(strr1+"<br>");document.write(strr2+"<br>");
属性和方法
属性 | 描述 |
---|---|
length | 表示字符串中字符的数量,通过该属性可以获取字符串的长度。例如,对于字符串 "Hello",其length属性的值为5。 |
方法 | 描述 | 示例 |
---|---|---|
charAt() | 返回在指定位置的字符。 | let str = "Hello"; console.log(str.charAt(1)); // 输出 "e" |
indexOf() | 检索字符串,返回指定子字符串首次出现的索引,如果未找到则返回 -1。 | let str = "Hello"; console.log(str.indexOf("l")); // 输出 2 |
trim() | 去除字符串两边的空格。 | let str = " Hello "; console.log(str.trim()); // 输出 "Hello" |
substring() | 提取字符串中两个指定的索引号之间的字符。 | let str = "Hello"; console.log(str.substring(1, 3)); // 输出 "el" |
1.3 Json
自定义对象
在 JavaScript 中自定义对象特别简单,其语法格式如下:
var 对象名 = {
属性名1: 属性值1,
属性名2: 属性值2,
属性名3: 属性值3,
函数名称: function(形参列表){}
};
我们可以通过如下语法调用属性:
对象名.属性名
通过如下语法调用函数:
对象名.函数名()
json对象
JSON对象:JavaScript Object Notation,JavaScript对象标记法。是通过JavaScript标
记法书写的文本。其格式如下:
{
"key":value,
"key":value,
"key":value
}
其中,key必须使用引号并且是双引号标记,value可以是任意数据类型。
定义:
var jsonstr = '{"name":"Tom", "age":18, "addr":["北京","上海","西安"]}';
因为上述是一个json字符串,不是json对象,所以我们需要借助如下函数来进行json字符
串和json对象的转换。
var jsonobj = JSON.parse(jsonstr);document.write(jsonobj.name+"<br>");
当然了,我们也可以通过如下函数将json对象再次转换成json字符串。添加如下代码:
document.write(JSON.stringify(jsonobj)+"<br>");