js为解释性语言, 边翻译,边执行;
优点:移植性好,跨平台。
缺点:运行速度不如编译型语言。
JS的书写方式:
- 行内式
<input type="button" value="Click me!" onclick="alert('Hello, World!')">
- 内嵌式 使用
<script type=”text/javascript”></script>
标签对
<script type="text/javascript">// 在这里写 js 代码alert('内嵌式');console.log('qianguyihao hello 方式2');</script>
- 外链式
<script src="utils.js"></script>
JS中的数据类型
JS中的基本数据类型: 值类型
String 字符串、Number 数值、BigInt 大型数值、Boolean 布尔值、Null 空值、Undefined 未定义、Symbol。
引用数据类型(引用类型):Object 对象
内置对象 Function、Array、Date、RegExp、Error 等都是属于 Object 类型。
数据类型转换:
转为字符串类型 数字常量不允许使用toString()(1.toString()中的.会被认为是小数点)
转为数字类型 使用 Number(变量/常量)转; 纯数字转为数字,非数字转为NaN,true转为1,false转为0,null转为0,undefined转为NaN; parseInt()函数:字符串 -> 整数; parseFloat()函数:字符串 --> 浮点数(小数);
转为布尔类型 数字 --> 布尔 0转为false,其余为true; 字符串,空串转为false,其他为true(" "空格也是true); 引用数据类型为true;空数组和空对象都是true;
基本包装类型 能不用就不用,尤其是进行判断的时候
String():将基本数据类型字符串,转换为 String 对象。
Number():将基本数据类型的数字,转换为 Number 对象。
Boolean():将基本数据类型的布尔值,转换为 Boolean 对象。
函数:
1 函数声明
function sum(a, b){return a+b;
}
2 函数表达式(匿名函数)
const fun2 = function() {console.log("我是匿名函数中封装的代码");
};
3 使用构造函数 new Function() (不常用)
const 变量名/函数名 = new Function('形参1', '形参2', '函数体');
Function 里面的参数都必须是字符串格式。也就是说,形参也必须放在字符串里;函数体也是放在字符串里包裹起来,放在 Function 的最后一个参数的位置。
函数调用 函数名(参数...), 函数名.call();
立即执行函数, 函数被定义完就立即执行,只执行一次
(function() {// 函数体
})(a, b);
作用域:
全局变量: 使用const 修饰 (变量未经声明,直接使用,则这个变量是全局变量)
局部变量: 使用 var let修饰
使用函数声明的形式创建的函数function foo(){},会被声明提前
对象合并:
let obj1 = { name: 'qianguyihao', age: 26 };
let obj2 = { city: 'shenzhen', age: 28 };
let obj3 = {};Object.assign(obj3, obj1, obj2); // 将 obj1、obj2的内容赋值给 obj3
console.log(obj3); // {name: "qianguyihao", age: 28, city: "shenzhen"}
冻结对象;
Object.freeze() 方法可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性