初学JavaScript
JavaScript的定义
JavaScript 是属于 HTML 和 Web 的编程语言,JavaScript 能够改变 HTML 内容 getElementById() 是多个 JavaScript HTML 方法之一,JavaScript 很容易学习。
一 javascript的简单使用
1.1 语法
JavaScript 语法是一套规则,它定义了 JavaScript 的语言结构。JavaScript 语句定义两种类型的值:混合值和变量值。混合值被称为字面量而变量值被称为变量。
书写格式如下:
var x, y; // 如何声明变量
x = 7; y = 8; // 如何赋值
z = x + y; // 如何计算值
在编程语言中,变量用于存储数据值。JavaScript 使用 var 关键词来声明变量,= 号用于为变量赋值。
1.2 输出形式
JavaScript 能够以不同方式“显示”数据:
- 使用 window.alert() 写入警告框。
- 使用 document.write() 写入 HTML 输出。
- 使用 innerHTML 写入 HTML 元素。
- 使用 console.log() 写入浏览器控制台。
1.2.1 使用 innerHTML
如需访问 HTML 元素,JavaScript 可使用 document.getElementById(id) 方法。
<h1>Web 页面的元素插入</h1>
<p id="demo">我的第一个段落是否修改</p>
<script>
document.getElementById("demo").innerHTML="段落已修改。";
</script>
如图所示
id 属性定义 HTML 元素。innerHTML 属性定义 HTML 内容:
我们可以看出可以通过Id更改插入标签中的内容。
1.2.2 window.alert()
<!DOCTYPE html>
<html>
<body>
<h2>我的网页</h2>
<p>第一个段落。</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 5 + 6;
</script>
</body>
</html>
1.3 javascript的关键词
关键字有:break、do、instanceof、typeof、case、else、new、var、catch、finally、return、void、continue、for、switch、while、if、try、this、with等。
1.3.1 let 关键字
使用 var 关键字重新声明变量会带来问题。在块中重新声明变量也将重新声明块外的变量:
var x = 10;
// 此处 x 为 10
{
var x = 6;
// 此处 x 为 6
}
// 此处 x 为 6
使用 let 关键字重新声明变量可以解决这个问题。在块中重新声明变量不会重新声明块外的变量:
var x = 10;
// 此处 x 为 10
{
let x = 6;
// 此处 x 为 6
}
// 此处 x 为 10
可以发现使用let相当于一个局部变量,外面无法访问作用域的内容。
1.4 JavaScript 数据类型
JavaScript 变量能够保存多种数据类型:数值、字符串值、数组、对象等等:
var length = 7; // 数字
var lastName = "a"; // 字符串
var cars = ["a", "b", "c"]; // 数组
var x = {firstName:"a", lastName:"b"}; // 对象
注意!!!
当数值和字符串相加时,JavaScript 将把数值视作字符串。
注意va c=1+1+"wxm"//2wxm,是一个字符串
var c2=wxm+1+1//wxm11,这是两种不同的结果,先遇到谁就是谁
二 基本函数的诞生
JavaScript 函数是被设计为执行特定任务的代码块,JavaScript 函数会在某代码调用它时被执行。
2.1 函数的语法
JavaScript 函数通过 function 关键词进行定义,其后是函数名和括号 ()。函数名可包含字母、数字、下划线和美元符号(规则与变量名相同)。圆括号可包括由逗号分隔的参数:
function name(参数 1, 参数 2, 参数 3) {
要执行的代码
}
2.2 函数的调用
函数中的代码将在其他代码调用该函数时执行:
- 当事件发生时(比如当用户点击按钮时)
- 当 JavaScript 代码调用时
- 自调用
2.3 函数是对象方法
fullName 属性是一个方法。person 对象是该方法的拥有者。fullName 属性属于 person 对象的方法。
var person = {
firstName:"王",
lastName: "小明",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
person.fullName(); // 将返回 "王 小明"
2.4 JavaScript call() 方法
call() 方法是预定义的 JavaScript 方法,它可以用来调用所有者对象作为参数的方法。通过 call(),您能够使用属于另一个对象的方法。
本例调用 person 的 fullName 方法,并用于 person1:
var person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
var person1 = {
firstName:"a",
lastName: "b",
}
var person2 = {
firstName:"c",
lastName: "d",
}
person.fullName.call(person1); // 将返回 "a b"
2.5 JavaScript apply() 方法
apply() 方法与 call() 方法非常相似:
在本例中,person 的 fullName 方法被应用到 person1:
var person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
var person1 = {
firstName: "a",
lastName: "b",
}
person.fullName.apply(person1); // 将返回 "a b"
2.6 call() 和 apply() 之间的区别
call() 方法分别接受参数而apply() 方法接受数组形式的参数。如果要使用数组而不是参数列表,则 apply() 方法非常方便。
三 数组及其函数
JavaScript 数组可以用于在单一变量中存储多个值。
3.1 创建数组
var array-name = [a, b, …];
var cars = [
"Saab",
"Volvo",
"BMW"
];
3.2 使用数组
我们通过引用索引号(下标号)来引用某个数组元素,这条语句访问 cars 中的首个元素的值:
var name = cars[0];//访问首元素
cars[0] = "Opel";//修改首元素
3.3 把数组转换为字符串
JavaScript 方法 toString() 把数组转换为数组值(逗号分隔)的字符串。
<h1>tostring</h1>
<p id="demo">我的第一个段落是否修改</p>
<script>
var cars = [
"S",
"V",
"B"
];
document.getElementById("demo").innerHTML=cars.toString();
</script>
3.4 把字符串转换为数组
可以通过 split() 将字符串转换为数组:
var txt = "a,b,c,d,e"; // 字符串
txt.split(","); // 用逗号分隔
txt.split(" "); // 用空格分隔
txt.split("|"); // 用竖线分隔
如果分隔符是 “”,被返回的数组将是间隔单个字符的数组:
<h1>把字符串转换为数组</h1>
<p id="demo">我的第一个段落是否修改</p>
<script>
var str="王小明666"
document.getElementById("demo").innerHTML=str.split("");
</script>
3.5 查找字符串中的字符串
indexOf() 方法返回字符串中指定文本首次出现的索引(位置),如果未找到文本, indexOf() 和 lastIndexOf() 均返回 -1。
<h1>把字符串转换为数组</h1>
<p id="demo">我的第一个段落是否修改</p>
<p id="demo1">我的第一个段落是否修改</p>
<script>
var str = "王小明666abcd"
// 找到a何e
document.getElementById("demo").innerHTML = str.indexOf("a");
document.getElementById("demo1").innerHTML = str.indexOf("e");
</script>
JavaScript 从零计算位置。0 是字符串中的第一个位置,1 是第二个,2 是第三个 …
lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引。
四 日期的使用
4.1 JavaScript 日期输出
<h1>日期的输出</h1>
<p id="demo">中国标准日期输出</p>
<script>
var str =new Date();
// 使用new date
document.getElementById("demo").innerHTML = str;
</script>
4.2 创建 Date 对象
4.2.1 日期对象的定义格式
- new Date()
- new Date(year, month, day, hours, minutes, seconds, milliseconds)
- new Date(milliseconds)
- new Date(date string)
4.3 JavaScript 日期格式
4.4 JavaScript ISO 日期
SO 8601 是表现日期和时间的国际标准。
ISO 8601 语法 (YYYY-MM-DD) 也是首选的 JavaScript 日期格式:
var d = new Date("2018-02-19");
警告
在某些浏览器中,不带前导零的月或其会产生错误:
4.5 JavaScript 日期获取方法
4.6 日期设置方法
设置方法用于设置日期的某个部分。下面是最常用的方法(按照字母顺序排序):
五 JavaScript 箭头函数
5.1 语法格式
hello = () => {
return "Hello World!";
}
如果只有一个参数则可以更短
hello = () => "Hello World!";
5.2 this
与常规函数相比,箭头函数对 this 的处理也有所不同,简而言之,使用箭头函数没有对 this 的绑定。
(1)对于常规函数,this 表示调用该函数的对象:
// 常规函数:
hello = function() {
document.getElementById("demo").innerHTML += this;
}
// window 对象调用该函数:
window.addEventListener("load", hello);
// button 对象调用该函数:
document.getElementById("btn").addEventListener("click", hello);
结果显示第一个例子返回两个不同的对象(window 和 button)
(2)箭头函数:
// 箭头函数:
hello = () => {
document.getElementById("demo").innerHTML += this;
}
// window 对象调用该函数:
window.addEventListener("load", hello);
// button 对象调用该函数:
document.getElementById("btn").addEventListener("click", hello);
第二个例子返回两次 window 对象,因为 window 对象是函数的“所有者”。
六 JavaScript 类
6.1 创建语法
请使用关键字 class 创建类,请始终添加名为 constructor() 的方法:
class ClassName {
constructor() { ... }
}
6.2 使用类创建对象
let myCar1 = new Car("Ford", 2014);
let myCar2 = new Car("Audi", 2019);
6.3 Constructor 方法
构造方法是一种特殊的方法:
- 它必须拥有确切名称的“构造函数”
- 创建新对象时自动执行
- 用于初始化对象属性
- 如果未定义构造函数方法,JavaScript 会添加空的构造函数方法。
七 JSON
7.1 JSON的定义
- JSON 指的是 JavaScript Object Notation
- JSON 是轻量级的数据交换格式
- JSON 独立于语言 *
- JSON 是“自描述的”且易于理解
7.2 语法规则
- 数据是名称/值对
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
- JSON 名称需要双引号。JavaScript 名称不需要。
7.3 JSON 实例
SON 语法定义了一个雇员对象:包含三条员工记录的数组(对象):
{
"employees":[
{"firstName":"Bill", "lastName":"Gates"},
{"firstName":"Steve", "lastName":"Jobs"},
{"firstName":"Alan", "lastName":"Turing"}
]
}
7.4 JSON 文本转换为 JavaScript 对象
使用 JavaScript 的内建函数 JSON.parse() 来把这个字符串转换为 JavaScript 对象:
<h1>输出</h1>
<p id="demo">转换</p>
<script>
var text = '{"name":"wxm","age":20}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML = text;
</script>
7.5 JavaScript转为JSON
调用stringify()将一个JS对象转换为JSON
<h1>输出</h1>
<p id="demo">转换</p>
<script>
var test = { name: "王小明", age: 21 };//定义一个JS对象
var json = JSON.stringify(test);//调用stringify()将一个JS对象转换为JSON
console.log(json);//输出:{"name":"王小明","age":21}
document.getElementById("demo").innerHTML = json;
</script>