1.JavaScript的页面输出:
document.write("Hello,World!");
2.JavaScript的控制台输出:
- console.log("输出一条日志"); //最常用
-
- console.info("输出一条信息");
-
- console.warn("输出一条警告");
-
- console.error("输出一条错误");
3.JavaScript的弹出窗口输出:
alert("Hello,World!");
1.转换为String类型:
- //方式一:调用被转换数据类型的toString()方法,该方法不会影响到原变量,它会将转换的结果返回,null和undefined这两个值没有toString()方法
- var a = 123;
- a = a.toString();
- console.log(a);
- console.log("toString()方法", typeof a);
-
- //方式二:调用String()函数,并将被转换的数据作为参数传递给函数
- var a = 123;
- a = String(a);
- console.log(a);
- console.log("String()函数", typeof a);
-
- //方式三:为任意的数据类型 +""
- var a = 123;
- a = a + "";
- console.log(a);
- console.log("", typeof a);
2.转换为Number类型:
- //方式一:使用Number()函数
- var a = "123";
- a = Number(a);
- console.log(a);
- console.log("Number()函数", typeof a);
-
- //方式二:parseInt() 把一个字符串转换为一个整数
- var a = "123";
- a = parseInt(a);
- console.log(a);
- console.log("parseInt()", typeof a);
-
- //方式三:parseFloat() 把一个字符串转换为一个浮点数
- var a = "123.456";
- a = parseFloat(a);
- console.log(a);
- console.log("parseFloat()", typeof a);
3.转换为Boolean类型:
- //转换为Boolean类型,只能使用Boolean()函数
- var a = "hahaha";
- a = Boolean(a);
- console.log(a);
- console.log("Boolean()函数",typeof a);
运算符也叫操作符,通过运算符可以对一个或多个值进行运算并获取运算结果
1、算术运算符,用于表达式计算
运算符 描述 例子
+ 加法 x=y+2
- 减法 x=y-2
* 乘法 x=y*2
/ 除法 x=y/2
% 取模(求余数)x=y%2
++ 自增 x=++y
2、关系运算符 ,逻辑语句中使用,以测定变量或值是否相等
| 运算符 | 描述 | 比较 | 返回值 | |
|---|---|---|---|---|
| > | 大于 | x>8 | false | |
| < | 小于 | x<8 | true | |
| >= | 大于或等于 | x>=8 | false | |
| <= | 小于或等于 | x<=8 | true |
3.赋值运算符,用于给 JavaScript 变量赋值
| 运算符 | 例子 | 等同于 | 运算结果 | |
|---|---|---|---|---|
| = | x=y | x=5 | ||
| += | x+=y | x=x+y | x=15 | |
| -= | x-=y | x=x-y | x=5 | |
| *= | x*=y | x=x*y | x=50 | |
| /= | x/=y | x=x/y | x=2 | |
| %= | x%=y | x=x%y | x=0 |
4.逻辑运算符,用于测定变量或值之间的逻辑。
| 运算符 | 描述 | 例子 |
|---|---|---|
| && 与 | and | (x < 10 && y > 1) 为 true |
| || 或 | or | (x==5 || y==5) 为 false |
| ! 非 | not | !(x==y) 为 true |
5.比较运算符,用来比较两个值是否相等,如果相等会返回true,否则返回false
使用 == 来做相等运算
当使用==来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型,然后在比较
使用 != 来做不相等运算
不相等用来判断两个值是否不相等,如果不相等返回true,否则返回false,不相等也会对变量进行自动的类型转换,如果转换后相等它也会返回false
使用 === 来做全等运算
用来判断两个值是否全等,它和相等类似,不同的是它不会做自动的类型转换,如果两个值的类型不同,直接返回false
使用 !== 来做不全等运算
用来判断两个值是否不全等,它和不等类似,不同的是它不会做自动的类型转换,如果两个值的类型不同,直接返回true
6.条件运算符,对变量进行赋值的条件运算符。
语法:
variablename=(condition)?value1:value2;举例:
result=(age<18)?"年龄太小":"年龄合适";执行流程:如果condition为true,则执行语句1,并返回执行结果,如果为false,则执行语句2,并返回执行结果。
7.逗号运算符,可以在一条语句中执行多次操作。
比如:var num1=1, num2=2, num3=3;
1、if…else语句是一种最基本的控制语句,它让JavaScript可以有条件的执行语句
- var age = 18;
- if (age < 18) {
- console.log("小于18岁了");
- } else if (age == 18) {
- console.log("已经18岁了");
- } else {
- console.log("大于18岁了")
- }
2.switch…case是另一种流程控制语句。更适用于多条分支使用同一条语句的情况。
- var today = 1;
- switch (today) {
- case 1:
- console.log("星期一");
- break;
- case 2:
- console.log("星期二");
- break;
- case 3:
- console.log("星期三");
- break;
- case 4:
- console.log("星期四");
- break;
- case 5:
- console.log("星期五");
- break;
- case 6:
- console.log("星期六");
- break;
- case 7:
- console.log("星期日");
- break;
- default:
- console.log("输入错误");
- }
1.while语句是一个最基本的循环语句,while语句也被称为while循环
- var i = 1;
- while (i <= 10) {
- console.log(i);
- i++;
- }
2.do…while和while非常类似,它会在循环的尾部而不是顶部检查表达式的值
- var i = 1;
- do {
- console.log(i);
- i++;
- } while (i <= 10);
3.for将计数器的三个关键操作初始化、检测和更新明确为了语法的一部分。
- for (var i = 1; i <= 10; i++) {
- console.log(i);
- }
4.跳转控制
- outer: for (var i = 0; i < 10; i++) {
- for (var j = 0; j < 10; j++) {
- if (j == 5) {
- break outer;
- }
- console.log(j); //0 1 2 3 4
- }
- }
1.创建对象
- //方法一:
- var person = new Object();
- person.name = "孙悟空";
- person.age = 18;
- console.log(person); //{name: '孙悟空', age: 18}
-
- //方法二:
- var person = {
- name: "孙悟空",
- age: 18
- };
- console.log(person); //{name: '孙悟空', age: 18}
2.访问属性
- const obj = {
- name: "我是属性名子"
- };
- //第一种方式:使用 . 来访问
- const girlNamed = obj.name; //对象.属性名
-
- //第二种方式:使用 [] 来访问
- const girlName = obj["name"]; //对象[‘属性名’]
3.删除属性,使用delete关键字
- var person = new Object();
- person.name = "孙悟空";
- person.age = 18;
- console.log(person); //{name: '孙悟空', age: 18}
- delete person.name //delete 对象.属性名
- console.log(person); //{age: 18}
4.遍历对象,枚举遍历对象中的属性,可以使用for … in语句循环
- var person = {
- name: "zhangsan",
- age: 18
- }
- for (var personKey in person) { //for (var 变量 in 对象)
- var personVal = person[personKey];
- console.log(personKey + ":" + personVal); //name:zhangsan age:18
- }
1.函数创建
- //方法一:使用函数对象 来创建一个函数
- var fun = new Function("console.log('这是我的第一个函数');");
-
- //方法二:使用函数声明 来创建一个函数
- function fun(){
- console.log("这是我的第二个函数");
- }
-
- //方法三:使用函数表达式 来创建一个函数
- var fun = function() {
- console.log("这是我的第三个函数");
- }
-
2.函数调用
- //对于无参函数调用
- var fun = function () {
- console.log("哈哈,我执行啦!");
- }
- fun(); // 函数调用
-
- //对于有参函数调用
- var sum = function (num1, num2) {
- var result = num1 + num2;
- console.log("num1 + num2 = " + result);
- }
- sum(10, 20);// 函数调用
-
3.函数返回值,使用 return 来设置函数的返回值
- function sum(num1, num2) {
- return num1 + num2;
- }
-
- var result = sum(10, 20);
4.嵌套函数,在函数中声明的函数就是嵌套函数,只能在当前函数中可以访问,在当前函数外无法访问。
- function fu() {
- function zi() {
- console.log("我是儿子")
- }
-
- zi();
- }
-
- fu();
5.对象中的函数
- var person = {
- name: "zhangsan",
- age: 18,
- sayHello: function () {
- console.log(name + " hello")
- }
- }
- person.sayHello();
6.this对象
- //创建一个全局变量name
- var name = "全局变量name";
-
- //创建一个函数
- function fun() {
- console.log(this.name);
- }
-
- //创建一个对象
- var obj = {
- name: "孙悟空",
- sayName: fun
- };
-
- //我们希望调用obj.sayName()时可以输出obj的名字而不是全局变量name的名字
- obj.sayName();
1、用工厂方法创建对象
- function createPerson(name, age) {
- var obj = new Object(); // 创建新的对象
- obj.name = name; // 设置对象属性
- obj.age = age; // 设置对象属性
- obj.sayName = function () { // 设置对象方法
- console.log(this.name);
- };
- return obj; //返回新的对象
- }
- var person1 = createPerson("沙和尚", 20);
- console.log(person1); //{name: '沙和尚', age: 20, sayName: ƒ}
-
- for (var i = 1; i <= 1000; i++) { //循环出来1000个对象
- var person = createPerson("person" + i, 18);
- console.log(person);
- }
2、用构造函数创建对象,构造函数就是一个普通的函数,创建方式和普通函数没有区别,不同的是构造函数习惯上首字母大写,构造函数和普通函数的还有一个区别就是调用方式的不同,普通函数是直接调用,而构造函数需要使用new关键字来调用。
- function Person(name, age) {
- this.name = name; // 设置对象的属性
- this.age = age; // 设置对象的属性
- this.sayName = function () { // 设置对象的方法
- console.log(this.name);
- };
- }
- var person1 = new Person("孙悟空", 18);
- console.log(person1); //Person {name: '孙悟空', age: 18, sayName: ƒ}
3.原型对象(prototype)构造函数来创建对象
- function Person(name, age) {
- this.name = name; // 设置对象的属性
- this.age = age; // 设置对象的属性
- }
-
- Person.prototype.sayName = function() { // 在Person类的原型对象中添加方法
- console.log(this.name);
- };
-
- var person1 = new Person("孙悟空", 18);
- person1.sayName(); //孙悟空
1、使用对象创建
- //同类型有序数组创建
- var arr = new Array();
- arr[0] = 1;
- arr[1] = 2;
- arr[2] = 3;
- arr[3] = 4;
- arr[4] = 5;
- arr[5] = 6;
- arr[6] = 7;
- arr[7] = 8;
- arr[8] = 9;
- console.log(arr); //[1, 2, 3, 4, 5, 6, 7, 8, 9]
- //不同类型有序数组创建
- var arr = new Array();
- arr[0] = 1;
- arr[1] = "2";
- arr[2] = 3;
- arr[3] = "4";
- arr[4] = 5;
- arr[5] = "6";
- arr[6] = 7;
- arr[7] = "8";
- arr[8] = 9;
- console.log(arr); //[1, '2', 3, '4', 5, '6', 7, '8', 9]
2、使用字面量创建
- //同类型有序数组创建
- var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
- //不同类型有序数组创建
- var arr = [1, "2", 3, "4", 5, "6", 7, "8", 9];
3、遍历数组
- for (var i = 0; i < arr.length; i++) {
- console.log(arr[i]);
- }
4、数组方法
- //push()方法演示:该方法可以向数组的末尾添加一个或多个元素,并返回数组的新的长度
- var arr = ["孙悟空", "猪八戒", "沙和尚"];
- var result = arr.push("唐僧", "蜘蛛精", "白骨精", "玉兔精");
- console.log(arr); //['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精', '玉兔精']
- console.log(result); //7
-
- //pop()方法演示:该方法可以删除数组的最后一个元素,并将被删除的元素作为返回值返回
- var arr = ["孙悟空", "猪八戒", "沙和尚"];
- var result = arr.pop();
- console.log(arr); //['孙悟空', '猪八戒']
- console.log(result); //沙和尚
-
- //unshift()方法演示:该方法向数组开头添加一个或多个元素,并返回新的数组长度
- var arr = ["孙悟空", "猪八戒", "沙和尚"];
- var result = arr.unshift("牛魔王", "二郎神");
- console.log(arr); //['牛魔王', '二郎神', '孙悟空', '猪八戒', '沙和尚']
- console.log(result); //5
-
- //shift()方法演示:该方法可以删除数组的第一个元素,并将被删除的元素作为返回值返回
- var arr = ["孙悟空", "猪八戒", "沙和尚"];
- var result = arr.shift();
- console.log(arr); //['猪八戒', '沙和尚']
- console.log(result); //孙悟空
-
- //forEach()方法演示:该方法可以用来遍历数组
- var arr = ["孙悟空", "猪八戒", "沙和尚"];
- arr.forEach(function (value, index, obj) {
- console.log(value + " #### " + index + " #### " + obj);
- //孙悟空 #### 0 #### 孙悟空,猪八戒,沙和尚
- //猪八戒 #### 1 #### 孙悟空,猪八戒,沙和尚
- //沙和尚 #### 2 #### 孙悟空,猪八戒,沙和尚
- });
-
- //slice()方法演示:该方法可以用来从数组提取指定元素,该方法不会改变元素数组,而是将截取到的元素封装到一个新数组中返回
- var arr = ["孙悟空", "猪八戒", "沙和尚", "唐僧", "白骨精"];
- var result = arr.slice(1, 4);
- console.log(result);//['猪八戒', '沙和尚', '唐僧']
- result = arr.slice(3);
- console.log(result); //['唐僧', '白骨精']
- result = arr.slice(1, -2);
- console.log(result); //['猪八戒', '沙和尚']
-
- //splice()方法演示:该方法可以用于删除数组中的指定元素,该方法会影响到原数组,会将指定元素从原数组中删除,并将被删除的元素作为返回值返回
- var arr = ["孙悟空", "猪八戒", "沙和尚", "唐僧", "白骨精"];
- var result = arr.splice(3, 2); //splice(开始位置, 删除的元素数量)
- console.log(arr); //['孙悟空', '猪八戒', '沙和尚']删除后的数组
- console.log(result); //['唐僧', '白骨精'] 删除的元素
-
- //concat()方法演示:该方法可以连接两个或多个数组,并将新的数组返回,该方法不会对原数组产生影响
- var arr = ["孙悟空", "猪八戒", "沙和尚"];
- var arr2 = ["白骨精", "玉兔精", "蜘蛛精"];
- var arr3 = ["二郎神", "太上老君", "玉皇大帝"];
- var result = arr.concat(arr2, arr3, "牛魔王", "铁扇公主");
- console.log(result);
- //['孙悟空', '猪八戒', '沙和尚', '白骨精', '玉兔精', '蜘蛛精', '二郎神', '太上老君', '玉皇大帝', '牛魔王', '铁扇公主']
-
- //join()方法演示:该方法可以将数组转换为一个字符串
- var arr = ["孙悟空", "猪八戒", "沙和尚"];
- var result = arr.join("@-@");
- console.log(result); //孙悟空@-@猪八戒@-@沙和尚
-
- //reverse()方法演示:该方法用来反转数组
- var arr = ["孙悟空", "猪八戒", "沙和尚"];
- arr.reverse();
- console.log(arr);//['沙和尚', '猪八戒', '孙悟空']
-
- //sort()方法演示:该方法可以用来对数组中的元素进行排序
- var arr = ["b", "c", "a"];
- arr.sort();
- console.log(arr); // ['a', 'b', 'c']
1.call()方法可以将实参在对象之后依次传递
- function fun(a, b) {
- console.log("a = " + a);
- console.log("b = " + b);
- console.log("fun = " + this);
- }
-
- var obj = {
- name: "obj",
- sayName: function () {
- console.log(this.name);
- }
- };
-
- fun(2, 3);
- console.log("===============");
- fun.call(obj, 2, 3);
2.apply()方法需要将实参封装到一个数组中统一传递
- function fun(a, b) {
- console.log("a = " + a);
- console.log("b = " + b);
- console.log("fun = " + this);
- }
-
- var obj = {
- name: "obj",
- sayName: function () {
- console.log(this.name);
- }
- };
-
- fun(2, 3);
- console.log("===============");
- fun.apply(obj, [2, 3]);
- var date = new Date();
- console.log(date);
-
- console.log(date.getFullYear());//获取当前日期对象的年份(四位数字年份)
- console.log(date.getMonth());//获取当前日期对象的月份(0 ~ 11)
- console.log(date.getDate());//获取当前日期对象的日数(1 ~ 31)
- console.log(date.getHours());//获取当前日期对象的小时(0 ~ 23)
- console.log(date.getMinutes());//获取当前日期对象的分钟(0 ~ 59)
- console.log(date.getSeconds());//获取当前日期对象的秒钟(0 ~ 59)
- console.log(date.getMilliseconds());//获取当前日期对象的毫秒(0 ~ 999)
- /*固定值*/
- console.log("PI = " + Math.PI);
- console.log("E = " + Math.E);
- console.log("===============");
- /*正数*/
- console.log(Math.abs(1)); //可以用来计算一个数的绝对值
- console.log(Math.ceil(1.1)); //可以对一个数进行向上取整,小数位只有有值就自动进1
- console.log(Math.floor(1.99)); //可以对一个数进行向下取整,小数部分会被舍掉
- console.log(Math.round(1.4)); //可以对一个数进行四舍五入取整
- console.log("===============");
- /*负数*/
- console.log(Math.abs(-1)); //可以用来计算一个数的绝对值
- console.log(Math.ceil(-1.1)); //可以对一个数进行向上取整,小数部分会被舍掉
- console.log(Math.floor(-1.99)); //可以对一个数进行向下取整,小数位只有有值就自动进1
- console.log(Math.round(-1.4)); //可以对一个数进行四舍五入取整
- console.log("===============");
- /*随机数*/
- //Math.random():可以用来生成一个0-1之间的随机数
- //生成一个0-x之间的随机数:Math.round(Math.random()*x)
- //生成一个x-y之间的随机数:Math.round(Math.random()*(y-x)+x)
- console.log(Math.round(Math.random() * 10)); //生成一个0-10之间的随机数
- console.log(Math.round(Math.random() * (10 - 1) + 1)); //生成一个1-10之间的随机数
- console.log("===============");
- /*数学运算*/
- console.log(Math.pow(12, 3)); //Math.pow(x,y):返回x的y次幂
- console.log(Math.sqrt(4)); //Math.sqrt(x) :返回x的平方根
1.charAt()方法演示:该方法可以根据索引获取指定位置的字符
- var str = "Hello,World!";
- console.log(str.charAt(1)); //e
2.charCodeAt()方法演示:该方法获取指定位置字符的字符编码(Unicode编码)
- var str = "Hello,World!";
- console.log(str.charCodeAt(1)); //101
3.indexof()方法:该方法可以检索一个字符串中是否含有指定内容,前往后找
- var str = "Hello,World!";
- console.log(str.indexOf("o")); //4
- console.log(str.indexOf("o", 5)); //4 7
4.lastIndexOf()方法:可以检索一个字符串中是否含有指定内容,后往前找
- var str = "Hello,World!";
- console.log(str.lastIndexOf("o")); //7
- console.log(str.lastIndexOf("o", 5)); //7 4
5.slice()方法:可以从字符串中截取指定的内容,不会影响原字符串,将截取到内容返回,可以接受负值作为参数
- //slice(开始位置的索引,结束位置的索引)
- var str = "Hello,World!";
- var result = str.slice(1, 4);
- console.log(result); //ell
- result = str.slice(1, -1);
- console.log(result); //ello,World
6.substring()方法演示:可以用来截取一个字符串,不能接受负值作为参数
- //substring(开始截取位置的索引,结束位置的索引)
- var str = "Hello,World!";
- var result = str.substring(1, 4);
- console.log(result); //ell
7.substr()方法演示:该方法用来截取字符串
- //substr(截取开始位置的索引,截取的长度)
- var str = "Hello,World!";
- var result = str.substr(6, 6);
- console.log(result); //World!
8.split()方法演示:该方法可以将一个字符串拆分为一个数组,需要一个字符串作为参数,将会根据该字符串去拆分数组
- var str = "Hello,World!";
- console.log(str);//Hello,World!
- var result = str.split(",");
- console.log(result); //['Hello', 'World!']
9.toUpperCase()方法演示:将一个字符串转换为大写并返回
- var str = "Hello,World!";
- var result = str.toUpperCase();
- console.log(result);//HELLO,WORLD!
10.toLowerCase()方法演示:将一个字符串转换为小写并返回
- var str = "Hello,World!";
- var result = str.toLowerCase();
- console.log(result); //hello,world!
1.使用对象创建
var 变量名 = new RegExp("正则表达式","匹配模式");
- // 这个正则表达式可以来检查一个字符串中是否含有a
- var reg = new RegExp("ab", "i");
- var str = "Abc";
- var result = reg.test(str);
- console.log(result); //true
2.使用字面量创建
var 变量名 = /正则表达式/匹配模式;
匹配模式:
- // 这个正则表达式可以来检查一个字符串中是否含有a
- var reg = /a/i;
- var str = "Abc";
- var result = reg.test(str);
- console.log(result); //true
3.创建一个正则表达式,检查一个字符串中是否有a或b或c
- // 这个正则表达式可以来检查一个字符串中是否含有a或b或c
- var reg = /a|b|c/; // | 表示或者的意思
- var str = "Abc";
- var result = reg.test(str);
- console.log(result); //true
4.创建一个正则表达式,检查一个字符串中是否有字母
- [a-z]:任意小写字母 [^a-z]:除了任意小写字母
- [A-Z]:任意大写字母 [^A-Z]:除了任意大写字母
- [A-z]:任意字母 [^A-z]:除了任意字母
- [0-9]:任意数字 [^0-9]:除了任意数字
查找 HTML 元素
方法 描述
document.getElementById(id) 通过元素 id 来查找元素。
document.getElementsByTagName(name) 通过标签名来查找元素。
document.getElementsByClassName(name) 通过类名来查找元素。
document.querySelector(CSS选择器) 通过CSS选择器选择一个元素。
document.querySelectorAll(CSS选择器) 通过CSS选择器选择多个元素。
1.创建一个按钮,通过id获取按钮节点对象
- <button id="btn">我是按钮</button>
- <script>
- var btn = document.getElementById("btn");
- console.log(btn);
- </script>
2.创建一个按钮,通过标签名获取按钮节点对象数组
- <button>我是按钮</button>
- <script>
- var btn = document.getElementsByTagName("button");
- console.log(btn);
- </script>
3.创建一个按钮,通过类名获取按钮节点对象数组
- <button class="btn">我是按钮</button>
- <script>
- var btn = document.getElementsByClassName("btn");
- console.log(btn);
- </script>
4.创建一个按钮,通过CSS选择器选择该按钮
- <button class="btn">我是按钮</button>
- <script>
- var btn = document.querySelector(".btn");
- console.log(btn);
- </script>
5.创建一个无序列表,通过CSS选择器选择该列表的所有li
- <ul class="list">
- <li>列表项1</li>
- <li>列表项2</li>
- <li>列表项3</li>
- <li>列表项4</li>
- </ul>
- <script>
- var list = document.querySelectorAll(".list li");
- console.log(list);
- </script>
方法 描述
元素节点.innerText 获取 HTML 元素的 inner Text。
元素节点.innerHTML 获取 HTML 元素的 inner HTML。
元素节点.属性 获取 HTML 元素的属性值。
元素节点.getAttribute(attribute) 获取 HTML 元素的属性值。
元素节点.style.样式 获取 HTML 元素的行内样式值。
1.创建一个按钮,然后获取按钮的文本内容
- <button id="btn">我是按钮</button>
- <script>
- var btn = document.getElementById("btn");
- console.log(btn.innerText);
- </script>
2.创建一个div,然后在div中插入一个h1标题,获取div中的html代码
- <div id="box">
- <h1>我是Box中的大标题</h1>
- </div>
- <script>
- var box = document.getElementById("box");
- console.log(box.innerHTML);
- </script>
3.创建一个超链接,默认为空,设置href属性为https://www.baidu.com ,使用JavaScript代码读取href属性
- <a id="a" href="https://www.baidu.com">打开百度,你就知道!</a>
- <script>
- var a = document.getElementById("a");
- console.log(a.href); //https://www.baidu.com
- </script>
4.创建一个正方形div,默认颜色为红色,使用JavaScript代码获取div的宽度
- <div style="width: 100px;height: 100px;background: red;" id="box"></div>
- <script>
- var box = document.getElementById("box");
- console.log(box.style.width); //100px
- </script>
方法 描述
元素节点.innerText = new text content 改变元素的 inner Text。
元素节点.innerHTML = new html content 改变元素的 inner HTML。
元素节点.属性 = new value 改变 HTML 元素的属性值。
元素节点.setAttribute(attribute, value) 改变 HTML 元素的属性值。
元素节点.style.样式 = new style 改变 HTML 元素的行内样式值。
1.创建一个按钮,然后改变按钮的文本内容
- <button id="btn">我是按钮</button>
- <script>
- var btn = document.getElementById("btn");
- btn.innerText = "我是JavaScript的按钮";
- console.log(btn);
- </script>
2.创建一个div,然后在div中插入一个h1标题
- <div id="box"></div>
- <script>
- var box = document.getElementById("box");
- box.innerHTML = "<h1>我是Box中的大标题</h1>";
- console.log(box);
- </script>
3.创建一个超链接,默认为空,使用JavaScript代码设置href属性为https://www.baidu.com
- <a id="a" href="">打开百度,你就知道!</a>
- <script>
- var a = document.getElementById("a");
- a.href="https://www.baidu.com";
- console.log(a);
- </script>
4.创建一个正方形div,默认颜色为红色,使用JavaScript代码改变为绿色
- <div style="width: 100px;height: 100px;background: red;" id="box"></div>
- <script>
- var box = document.getElementById("box");
- box.style.background = "green";
- console.log(box);
- </script>
| 属性 | 描述 |
|---|---|
| onblur | 当窗口失去焦点时运行脚本。 |
| onfocus | 当窗口获得焦点时运行脚本。 |
| onload | 当文档加载之后运行脚本。 |
| onresize | 当调整窗口大小时运行脚本。 |
| onstorage | 当 Web Storage 区域更新时(存储空间中的数据发生变化时)运行脚本。 |
1:当窗口失去焦点时,输出“窗口失去焦点”
- <script>
- window.onblur = function () {
- console.log("窗口失去焦点");
- };
- </script>
2:当窗口获取焦点时,输出“窗口获取焦点”
- <script>
- window.onfocus = function () {
- console.log("窗口获取焦点");
- };
- </script>
3:当页面文档加载完成后,输出"Hello, World"
- <script>
- window.onload = function () {
- console.log("Hello,World");
- };
- </script>
4:当调整窗口大小时,输出"窗口大小正在改变"
- <script>
- window.onresize = function () {
- console.log("窗口大小正在改变");
- };
- </script>
属性 描述
onblur 当元素失去焦点时运行脚本。
onfocus 当元素获得焦点时运行脚本。
onchange 当元素改变时运行脚本。
oninput 当元素获得用户输入时运行脚本。
oninvalid 当元素无效时运行脚本。
onselect 当选取元素时运行脚本。
onsubmit 当提交表单时运行脚本。
1:当文本框获取焦点,文本框背景为红色,当文本框失去焦点,文本框背景为黄色
- <form>
- <input type="text" id="text">
- </form>
- <script>
- var textInput = document.getElementById("text");
- textInput.onfocus = function () {
- this.style.background = "red";
- };
- textInput.onblur = function () {
- this.style.background = "green";
- };
- </script>
2:当文本框内容改变时,鼠标离开文本框,自动将文本框的内容输出到控制台
- <form>
- <input type="text" id="text">
- </form>
- <script>
- var textInput = document.getElementById("text");
- textInput.onchange = function () {
- console.log(this.value);
- };
- </script>
3:当文本框内容改变时,立即将改变的内容输出到控制台
- <form>
- <input type="text" id="text">
- </form>
- <script>
- var textInput = document.getElementById("text");
- textInput.oninput = function () {
- console.log(this.value);
- };
- </script>
4:如果单击“submit”,则不填写文本字段,将发生警报消息
- <form>
- <input type="text" id="text" required>
- <input type="submit" value="submit">
- </form>
- <script>
- var textInput = document.getElementById("text");
- textInput.oninvalid = function () {
- console.log("请您完善表单内容!");
- };
- </script>
5:当选中文本框的内容时,输出“您已经选择了文本框内容!”
- <form>
- <input type="text" id="text">
- </form>
- <script>
- var textInput = document.getElementById("text");
- textInput.onselect = function () {
- console.log("您已经选择了文本框内容!");
- };
- </script>
6:当提交表单的时候,在控制台输出“表单提交”
- <form id="myform">
- <input type="submit" id="submit">
- </form>
- <script>
- var myform = document.getElementById("myform");
- myform.onsubmit = function () {
- console.log("表单提交");
- return false;
- };
- </script>
| 属性 | 描述 |
|---|---|
| onkeydown | 当按下按键时运行脚本。 |
| onkeyup | 当松开按键时运行脚本。 |
| onkeypress | 当按下并松开按键时运行脚本。 |
1:当键盘按下判断当前的按键是不是 a ,如果是就输出true,否则输出false
- <script>
- window.onkeydown = function (event) {
- event = event || window.event;
-
- if (event.keyCode == 65) {
- console.log("true");
- } else {
- console.log("false");
- }
- };
- </script>
2:使div可以根据不同的方向键向不同的方向移动
- <div id="box" style="width: 100px;height: 100px;background: red;position: absolute;"></div>
- <script>
- var box = document.getElementById("box");
- //为document绑定一个按键按下的事件
- document.onkeydown = function (event) {
- event = event || window.event;
-
- // 定义移动速度
- var speed = 10;
-
- // 选择移动方向
- switch (event.keyCode) {
- case 37:
- box.style.left = box.offsetLeft - speed + "px";
- break;
- case 39:
- box.style.left = box.offsetLeft + speed + "px";
- break;
- case 38:
- box.style.top = box.offsetTop - speed + "px";
- break;
- case 40:
- box.style.top = box.offsetTop + speed + "px";
- break;
- }
- };
- </script>
属性 描述
onclick 当单击鼠标时运行脚本。
ondblclick 当双击鼠标时运行脚本。
onmousedown 当按下鼠标按钮时运行脚本。
onmouseup 当松开鼠标按钮时运行脚本。
onmousemove 当鼠标指针移动时运行脚本。
onmouseover 当鼠标指针移至元素之上时运行脚本,不可以阻止冒泡。
onmouseout 当鼠标指针移出元素时运行脚本,不可以阻止冒泡。
onmouseenter 当鼠标指针移至元素之上时运行脚本,可以阻止冒泡。
onmouseleave 当鼠标指针移出元素时运行脚本,可以阻止冒泡。
onmousewheel 当转动鼠标滚轮时运行脚本。
onscroll 当滚动元素的滚动条时运行脚本。
1:创建一个正方形div,默认颜色为黑色,当鼠标移入div,背景颜色变为红色,当鼠标移出div,背景颜色变为绿色
- <div id="box" style="width: 100px;height: 100px;background: black;"></div>
- <script>
- var box = document.getElementById("box");
- /* 当鼠标移入div,背景颜色变为红色 */
- box.onmouseenter = function () {
- this.style.background = "red";
- };
- /* 当鼠标移出div,背景颜色变为绿色 */
- box.onmouseleave = function () {
- this.style.background = "green";
- };
- </script>
通过视频(videos),图像(images)或音频(audio) 触发该事件。
属性 描述
onabort 当发生中止事件时运行脚本。
oncanplay 当媒介能够开始播放但可能因缓冲而需要停止时运行脚本。
oncanplaythrough 当媒介能够无需因缓冲而停止即可播放至结尾时运行脚本。
ondurationchange 当媒介长度改变时运行脚本。
onemptied 当媒介资源元素突然为空时(网络错误、加载错误等)运行脚本。
onended 当媒介已抵达结尾时运行脚本。
onerror 当在元素加载期间发生错误时运行脚本。
onloadeddata 当加载媒介数据时运行脚本。
onloadedmetadata 当媒介元素的持续时间以及其它媒介数据已加载时运行脚本。
onloadstart 当浏览器开始加载媒介数据时运行脚本。
onpause 当媒介数据暂停时运行脚本。
onplay 当媒介数据将要开始播放时运行脚本。
onplaying 当媒介数据已开始播放时运行脚本。
onprogress 当浏览器正在取媒介数据时运行脚本。
onratechange 当媒介数据的播放速率改变时运行脚本。
onreadystatechange 当就绪状态(ready-state)改变时运行脚本。
onseeked 当媒介元素的定位属性不再为真且定位已结束时运行脚本。
onseeking 当媒介元素的定位属性为真且定位已开始时运行脚本。
onstalled 当取回媒介数据过程中(延迟)存在错误时运行脚本。
onsuspend 当浏览器已在取媒介数据但在取回整个媒介文件之前停止时运行脚本。
ontimeupdate 当媒介改变其播放位置时运行脚本。
onvolumechange 当媒介改变音量亦或当音量被设置为静音时运行脚本。
onwaiting 当媒介已停止播放但打算继续播放时运行脚本。
| 属性 | 描述 |
|---|---|
| onshow | 当 <menu> 元素在上下文显示时触发。 |
| ontoggle | 当用户打开或关闭 <details> 元素时触发。 |
事件的冒泡(Bubble):所谓的冒泡指的就是事件的向上传导,当后代元素上的事件被触发时,其祖先元素的相同事件也会被触发,在开发中大部分情况冒泡都是有用的,如果不希望发生事件冒泡可以通过事件对象来取消冒泡
1:创建两个div,叠放在一起,分别绑定单击事件,点击最里边的div,会触发两个div的单击事件
- <style>
- #div1 {
- width: 200px;
- height: 200px;
- background: pink;
- }
-
- #div2 {
- width: 100px;
- height: 100px;
- background: coral;
- }
- </style>
- <div id="div1">
- 我是DIV1
- <div id="div2">
- 我是DIV2
- </div>
- </div>
- <script>
- var div1 = document.getElementById("div1");
- var div2 = document.getElementById("div2");
- // 为div1绑定单击事件
- div1.onclick = function () {
- console.log("div1 的单击事件触发了!");
- };
- // 为div2绑定单击事件
- div2.onclick = function () {
- console.log("div2 的单击事件触发了!");
- };
- </script>
1、警告框
- window.alert("sometext");
- alert("我是一个警告框!");
2、确认框
- window.confirm("sometext");
- var r = confirm("请按按钮");
- if (r == true) {
- x = "您按了确认!";
- } else {
- x = "您按了取消!";
- }
3、提示框
- window.prompt("sometext","defaultText");
- var person = prompt("请输入您的姓名", "比尔盖茨");
- if (person != null) {
- console.log(person);
- }
1、setTimeout() 方法:延时器
window.setTimeout(function, milliseconds);
- 第一个参数是要执行的函数。
- 第二个参数指示执行之前的毫秒数。
单击按钮,等待 3 秒,然后控制台会输出 "Hello"
- <button id="btn">按钮</button>
- <script>
- var btn = document.getElementById("btn");
- btn.onclick = function () {
- // 创建延时器
- var timer = setTimeout(function () {
- console.log("Hello");
- }, 3000);
-
- // 清除延时器
- clearTimeout(timer);
- };
- </script>
2、setInterval() 方法:定时器
window.setInterval(function, milliseconds);
- 第一个参数是要执行的函数。
- 第二个参数每个执行之间的时间间隔的长度。
单击按钮,每隔一秒向控制台输出 "Hello"
- <button id="btn">按钮</button>
- <script>
- var btn = document.getElementById("btn");
- btn.onclick = function () {
- // 创建定时器
- var timer = setInterval(function () {
- console.log("Hello");
- }, 1000);
- // 清除定时器
- clearInterval(timer);
- };
- </script>
- var obj = {name: "猪八戒", age: 28, gender: "男"};
- var jsonStr = JSON.stringify(obj);
- console.log(jsonStr);