前言
1.ECMAScript 语法核心知识:变量、分支语句、循环语句、对象等
2.webapi:BOM、DOM
基础
1.js的书写
写在<script></script>标签内,和外部引用方式:<script scr=""></script>、行内式<h1 onclick="alert('hello')"></h1>。
2.结束符“; ”
一行内只写一个语句,如写多个,要用分号隔开。
3.五种数据类型:
// 1.数值 number
console.log(10);
console.log(-10);
console.log(10.5);
// 2.字符串:引号的区别
console.log('hello');
console.log("world");
console.log(`hello world`);
// 3.布尔类型 boolean
// 仅有true 和 false
console.log('true');
console.log(true);
console.log(false);
// 仅具有两种性质的数据,可以使用布尔类型来表示
console.log(10 < 20); // true
console.log(10 > 20); // false
// 4.未定义
console.log(undefined);
// 5.空类型
console.log(null);
4.查看数据类型 typeof() :
// typeof() 查看数据类型
console.log(typeof()); // 在控制台输出类型
// * 查看数据类型:typeof(),为获取数据类型,不具备输出功能
console.log(typeof(10)); // number
console.log(typeof('hello')); // string
console.log(typeof(true)); // boolean
console.log(typeof(null)); // object对象
// 对于prompt()来说,点击确认 计算机接收到的是string类型,反之null类型
console.log(typeof(prompt('请输入数据')));
// 对于confirm()来说,就是boolean类型
console.log(typeof(confirm('请选择')));
5.数组:
用 [ ] 方括号括起来,以逗号隔开每一个数值。(复杂运算符)
let arr = [10, 49, 16, 20];
// 查看所有元素
console.log(arr); // 10, 49, 16, 20
// 查看数组中的某一个元素,数组名[下标],数组中的下标从0开始,表示第一位数值
// 不存在的下标返回undefined
console.log(arr[0]); // 10
console.log(arr[3]); // 20
console.log(arr[20]); // undefined
// 添加元素,数组名[下标] = 数值
arr[4] = 100;
console.log(arr); // 10, 49, 16, 20, 100
// 获取数组的长度:数组名.length
console.log(arr.length); // 5
6.变量:
内存中用于存储数据的一个空间,为了使用空间所起的名字,叫做变量。
// 声明变量 = 数据,将右侧的数值赋给左侧
let 变量名 = 值
console.log(变量名);
// 修改变量值,不能let已声明过的变量名
变量名 = 新值
console.log(变量名);
// * 仅声明变量,没有赋值,返回结果为undefined
变量命名命名规则及规范:
1.规则:
1-1.不能用js的关键字,如 let / var / if / for / 等
1-2.只能用下划线、字母、数字、$组成,且数字不能开头
严格区分大小写,Age与 age是不同的变量
2.规范:
2-1.起名有意义
2-2.注意驼峰命名,如 userName
// 交换a和b的值
let a = 10;
let b = 20;
console.log(a, b);
let c = a; // c是空值
a = b;
b = c;
console.log(a, b);
7.常量:
一类特殊的变量,常量里的值不允许被修改
// 语法:
// 1.定义时必须赋值
// 2.存储不被允许修改的数据
const 常量名 = 数据;
// 如果更改常量的值,返回结果会报错
未捕捉 错误类型 分配 至 常量 可变量
Uncaught TypeError: Assignment to constant variable.
报错:不可重新分配常量的值。
8.算术运算符:
加+ 、减- 、乘* 、除/ 、取余%
// + - * / 是原来的使用方法
// % 取模、求余,多用于求偶数、奇数
console.log(5 % 3); //余2,不能被整除,即奇数
console.log(9 % 3); // 余0,能被整除,即偶数
自增 ++ ,自减 -- ,在原值基础上增1或减1
let a = 20;
// 自增 ++
a++ // 返回结果:21。相当于a = a + 1;
console.log(a);
let b = 20;
// 自减 --
b-- // 返回结果:19。相当于a = a - 1;
console.log(b);
9.字符串运算符: + 、 +=
//字符串的拼接
// 1. + 拼接
let str1 = 'hello',
str2 = ' world';
console.log(str1,str2);
let str3 = str1 + str2;
console.log(str3); // ’hello world'
// 2. += 拼接
let str1 = 'hello';
str1 += ' world';
console.log(str1); // ’hello world'
10.数据类型的转换:
① 隐式转换:js 内部运算时,自己完成的转换
// 使用+ 、 += 输出时,会优先进行字符串拼接,其他运算符计算机会自动完成转换
console.log(2 - '2'); // 0
// 相当于console.log(2 - Number('2'));,计算机把字符串自动转化为数字类型
② 显式转换:程序员在书写代码时发现数据类型不同,自己完成的转换
// 添加类型Number(),将字符串''转换为数字类型进行输出
console.log(10 + Number('20')); // 30
// 把数字类型转换为String()类型
console.log(10 + String(10)); // 1010
// 拓展:多种方式实现数值转换
// 让用户输入的数值与库存相加,在控制台输出总数
let inventory = 100;
let num = prompt('请输入本月的入库数');
let total = inventory + num;
console.log(total);
Ⅰ let total = inventory + Number(num);
Ⅱ 2.let num = Number(prompt('请输入本月的入库数'));
Ⅲ 3.let num = prompt('请输入本月的入库数') * 1 ;
Ⅳ 4.let num = +prompt('请输入本月的入库数');
11.数值的提取parseInt()、parseFloat():
// parseInt():在字符串中,从左向右依次提取整数,直到遇到非数字,停止提取
console.log(parseInt('1090'));
// parseFloat():在字符串中,从左向右依次提取小数,直到遇到非数字,停止提取
console.log(parseFloat('3.1415926458'));
12.模板字符串:反引号``
// 反引号:可以换行,可以添加解析变量${}的值
let age = 28;
let str = `今年${age}岁`;
// 外面单引号,里面双引号,不可以使用同一种引号
let str1 = "<table style='width:400px,height:400px'>";