一. JavaScript概述
1995年,专门为网页交互而设计的脚本语言,具有较强逻辑性.
二. JavaScript的组成
ECMAScript -> ES -> 定义语法规范
DOM 文档对象模型, 操作页面上的元素
BOM 浏览器对象模型, 利用js操作浏览器的前进,后退,打印,刷新等
三. JavaScript 语言的特点
简单
脚本语言: 所写即所得
基于对象(支持面向对象编程,更加贴近现实)
动态性(事件驱动)
跨平台性
四. JavaScript语言介绍
标签: <script type="text/javascript"> js代码写在这里 </script>
alert("我是一个提示框");
console.log("我在控制台打印");
document.write("<b>我在页面显示,我可以解析任何HTML代码</b>");
五. 注释
单行注释 -> ctrl + /
多行注释 -> ctrl + shift + /
在vscode中修改块注释的快捷键: 文件 -> 首选项 -> 键盘快捷方式 -> 搜索"块" -> 切换块注释 -> 按 ctrl + shift + / -> 回车(完成)
六.变量
使用var关键字,在内存中开辟一个空间,给空间命名,并且赋值
-
声明变量
2.1) 变量默认是undefined未定义类型
var myName; console.log(myName); // undefined
2.2) 声明变量的同时,赋予初值[推荐]
var myName = "老罗";
2.3) 简写: 多个变量,可以使用逗号隔开,减少写var关键字
var myName = "老罗", age="18", sex="男";
查看js的基本数据类型,使用typeof
var str = 123; console.log(typeof(str)); // number
-
js属于弱类型语言, 在赋值的时候才能确定数据类型
4.1) 值可以是任意类型的数据
4.2) 数据类型可以被修改
七. 变量命名规则
只能由数字,字母,下划线,$组成
不能以数字开头
严格区分大小写
不能使用关键字或保留字
-
采用大驼峰或小驼峰命名法
5.1) 大驼峰: 用于类型,构造函数
5.2) 小驼峰: 用于变量,形参,函数
语义化,见名知意
八. js的数据类型
- 字符串类型 String, 由一组双引号或单引号组成的
var str = '哈哈';
var str2 = "哈哈哈";
- 数值类型 Number
var num = 100;
var num2 = 11.22;
- 布尔类型 Boolean, 值为true/false
var isLogin = true;
- 未定义类型 undefined , 为防止出错,js会隐式设置一个默认的undefined
var str;
console.log(str); // undefined
- 空地址 null
var n = null;
- 对象类型 Object, 引用类型
var Person = new Object(); // 创建方式1
Person.name = "张三";
var dog = {name:"大黄"}; // 创建方式2
dog.age = 2;
九.类型转换(其他类型转Boolean)
- string -> boolean ,非空字符串为true,空字符串为false;
- [注] 空格也算内容
var str = ""; // false
var str2 =" "; // true
- number -> boolean ,非0为true, 0和NaN为false
console.log(Boolean(0)); // false
console.log(Boolean(NaN)); // false
- null 和 undefined -> Boolean ,始终为false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
- object -> boolean ,只要值不是null,就为true
console.log(Boolean({})); // true
十. 强制转换
Boolean() 转为布尔类型 [略:见'九']
parseInt() 保留整数部分数值,不能以字母开头
console.log(parseInt("100px")); // 100
console.log(parseInt("3.12亿")); // 3
console.log(parseInt("px123")); // NaN
- parseFloat() 保留至小数部分数值
console.log(parseFloat("12.3px")); // 12.3
- Number() 字符串型数字转数值型
var str = "12.34";
console.log(Number(str)); // 12.34
-
"", null, undefined 转 parseInt()/Number()
5.1) "", null, undefined在parseInt()转换下,始终是NaN
5.2)"", null, undefined在Number()转换下,除了undefined是NaN,其它都是0
console.log(parseInt("")); // NaN
console.log(parseInt(null)); // NaN
console.log(parseInt(undefined)); // NaN
console.log(Number("")); // 0
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
十一. 隐式转换
- 在运算的时候,除了"+"表示拼接以外, -, *, /, %, ==, ...都会发生隐式转换
console.log("200" - 100); // 100
十二. isNaN() 判断是否不是一个数值
NaN -> not a number
NaN -> number类型 [重要]
console.log(isNaN("abc")); // true
console.log(isNaN(10)); // false
console.log(isNaN(null)); // false
console.log(isNaN(undefined)); // true
console.log(isNaN(NaN)); // true
console.log(isNaN(Boolean(NaN))); // false
十三.关键字及其作用
- 关键字: 已经被js内部使用了的
- break 立即退出循环
- continue 退出当前循环,根据条件表达式进入下一次循环
- case 配合switch完成判断
- switch 多重判断语句
- default 配合switch,当条件不成立时,执行该项
- throw 抛出异常
- try 配合catch进行错误判断
- catch 配合try进行错误判断
- finally 预防异常时使用,无论异常是否发生都会执行
- delete 删除属性
- if 用于判断
- else 配合if进行条件判断,用于条件选择跳转
- do 配合while做前置判断
- while 判断语句,可配合do做前置判断;或独立使用做后置判断
- for 循环语句
- in 配合for遍历对象; 判断某个属性是否属于某个对象
- return 从当前函数退出,并返回一个值
- function 函数关键字
- with 设置代码在特定对象中的作用域
- void 声明没有返回值
- typeof 检测变量的数据类型
- this 指向该方法的对象
- var 声明变量
- instanceof 用于判断某个对象是否另一个对象的实例
- new 创建一个新实例对象
十三.保留字
- 暂时还未被使用,将来可能会被js内部使用
- Byte 字节
- Boolean 布尔
- char 字符型
- const 常量型
- Double 双精度浮点型
- Float 单精度浮点型
- Int 整型
- short 短整型
- Long 长整型
- Enum 枚举类型
- Public 公有型
- Pravite 私有型
- Protected 保护型
- Class 类
- Abstract 抽象
- Debugger 调试器
- Implements 实现
- Import 导入
- Export 导出
- Interface 接口
- static 静态的
- extends 继承
- super 调用父类属性/方法
- Final 对象不可改变
- Native 计算机函数
- synchronized 同步
- Package 包
- throws 抛出
- Goto 跳转
- transient 实现Serilizable接口,使对象序列化
- volatile 修饰变量