目录
JavaScript(JS)是一种具有函数优先特性的轻量级、解释型或者说即时编译型的编程语言。虽然作为 Web 页面中的脚本语言被人所熟知,但是它也被用到了很多非浏览器环境中,例如 Node.js、Apache CouchDB、Adobe Acrobat 等。进一步说,JavaScript 是一种基于原型、多范式、单线程的动态语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
一、声明变量
(1)let
let 变量名 = 值;
let声明的变量可以被多次赋值,例如:
let a = 100; // 初始值是 100
a = 200; // ok, 被重新赋值为 200
(2)const
const修饰的叫常量,只能赋值一次
const b = 300; // 初始值是 300
b = 400; // error, 不能再次赋值
const并不意味着它引用的内容不可修改,例如:
const c = [1,2,3];
c[2] = 4; // ok, 数组内容被修改成 [1,2,4]
c = [5,6]; // error, 不能再次赋值
(3)var
var声明的变量可以被多次赋值,例如:
var f = 100;
f = 200;
二、基本类型
(1)undefined和null
执行表达式或函数,没有返回结果,出现 undefined
访问数组不存在的元素,访问对象不存在的属性,出现 undefined
定义变量,没有初始化,出现 undefined
例如:
console.log(1); // 函数没有返回值, 结果是 undefined
let a = 10; // 表达式没有返回值, 结果是 undefined
let b = [1,2,3];
console.log(b[10]); // 数组未定义元素是 undefined
let c = {"name":"张三"};
console.log(c.age); // 对象未定义属性是 undefined
let d;
console.log(d); // 变量未初始化是 undefined
二者共同点
都没有属性、方法
二者合称 Nullish
二者区别
undefined 由 js 产生
null 由程序员提供
(2)string
js字符串有三种写法:
let a = "hello"; // 双引号
let b = "world"; // 单引号
let c = `hello`; // 反引号
HTML代码,用java和js中的表示对比:
java表示,比较繁琐:
String s2 = """
<a href="1.html">超链接</a>""";
js比较灵活:
let s1 = '<a href="1.html">超链接</a>';
let s2 = `<a href="1.html">超链接</a>`;
模板字符串(Template strings)
需求:拼接URL的请求参数,如:
/test?name=zhang&age=18
/test?name=li&age=20
传统方法拼接:
let name = ; // zhang li ...
let age = ; // 18 20 ...
let uri = "/test?name=" + name + "&age=" + age;
模板字符串方式:
let name = ; // zhang li ...
let age = ; // 18 20 ...
let uri = `/test?name=${name}&age=${age}`;
(3)number和bigin
number类型标识的是双精度浮点小数,例如:
10 / 3; // 结果 3.3333333333333335
既然是浮点小数,那么可以除零:
10 / 0; // 结果 Infinity 正无穷大
-10 / 0; // 结果 -Infinity 负无穷大
浮点小数都有运算精度问题,例如:
2.0 - 1.1; // 结果 0.8999999999999999
字符串转数字
parseInt("10"); // 结果是数字 10
parseInt("10.5"); // 结果是数字 10, 去除了小数部分
parseInt("10") / 3; // 结果仍视为 number 浮点数, 因此结果为 3.3333333333333335
parseInt("abc"); // 转换失败,结果是特殊值 NaN (Not a Number)
要表示真正的整数,需要用bigint,数字的结尾用n表示它是一个bigint类型
10n / 3n; // 结果 3n, 按整数除法处理
(4)boolean
在js中,并不是boolean才能用于条件判断,可以在if语句中使用【数字】、【字符串】...作为判断
let b = 1;
if(b) { // true
console.log("进入了");
}
这时就有一个规则,当需要条件判断时,这个值被当做true还是false,当做true的值归类为truthy,当做false的值归类为falsy
下面的值是falsy:
false
Nullish (null, undefined)
0, 0n, NaN
"" '' ``
即长度为零的字符串
剩余的值绝大部分都是truthy
有几个容易被当做falsy实际上是truthy的
"false", "0"
即字符串的 false 和 字符串的零
[]
空数组
{}
空对象
(5)symbol
使用较少,需要的可以在下面网址查阅JavaScript | MDN (mozilla.org)https://developer.mozilla.org/zh-CN/docs/Web/JavaScript