JavaScript的组成
- ECMAScript,规定js的基础核心语法
- Web APIS:
- DOM,操作文档,元素移动,增删改
- BOM,操作浏览器,页面弹窗,存储数据到浏览器
JavaScript的编写位置
- 行内,写在标签内部,如
<button onclick=""> - 内部,写在 html 的
<script type="text/javascript">标签内 - 外部,通过
<script src=".js"></script>引入外部 js 文件
JS单行注释/多行注释
// 单行注释
/* 多行注释 */
JS输入输出
JS输入
// 提示输入
prompt('please enter your name');
JS输出
// 向 body 中写入内容
document.write('hello');
// 页面弹窗
alter('');
// 控制台打印
console.log('');
JS变量/字面量
变量是用于存储字面量数据的“容器”,它需要从内存中开辟一块空间。 字面量就是字面的意思,是什么就是什么,字面量会对应不同的类型。
变量声明/赋值
// let 变量名
let variable;
// 声明多个变量
let variable1, variable2;
// 赋值
variable = 20;
// 变量的初始化
let variable = 20;
let/var区别
var声明:
- 可以先使用后声明(因为变量提升)
- var 声明的变量可以重复声明
- 变量提升、全局变量、没有块级作用域,但是有函数作用域
JS数组
// let array = [element1,element2,...];
let array = [];
let array = new Array();
// 访问数组元素,array[index]
array[0];
// 数组长度(属性)
array.length;
// 遍历数组
for(let i = 0; i < array.length; i++) { array[i]; }
for(let element of array) { element; }
JS常量
常量在声明时必须赋值,也就是初始化
const constant = 'value';
JS数据类型
基本数据类型
- 数字类型(number)
- 字符串类型(string),使用单引号,双引号,反引号
- 布尔值(boolean)
- 空类型(null),null 本身是一个对象引用值,空值
- undefined,一个声明的变量未赋值就是 undefined
- 大整型(bigInt)
- 符号(symbol)
// 模版字符串使用反引号包裹,变量使用${}格式
let v = 1;
let s = `this is a string template, ${v}`;
// 使用 typeof 检查数据类型
typeof v;
引用数据类型
- 对象类型(object)
- 函数类型(function),函数也是一种对象
JS数据类型转换
// 转为数字类型
Number('123');
Number('abc'); // NaN
Number(true); // 1
Number(false); // 0
Number(null); // 0
Number(undefined); // NaN
// 解析成整数
parseInt();
// 解析成浮点数
parseFloat();
// 转为字符串
(123).toString();
// 转为字符串
String(123);
String(null); // "null"
String(undefined); // "undefined"
// 转为布尔值,没有值(0/NaN/null/undefined/'')表示false,有表示true
Boolean();
Boolean(0); // false
Boolean(1); // true
Boolean(-1); // true
Boolean(NaN); // false
Boolean(Infinity); // true
Boolean('false'); // true
Boolean(''); // false
Boolean(null); // false
Boolean(undefined); // false
JS运算符
- 逻辑运算符
!,逻辑非&&,逻辑与||,逻辑或
- 算数运算符
+-*/%
- 关系运算符
>>=<<=
- 相等运算符
==,弱相等运算符===,全等运算符
- 条件运算符
express ? exp1 : exp2
JS流程控制语句
if...if...else...if...else if...else...switch(express) { case express1:;break;}
JS循环语句
while() {}do {} while();for(;;) {}