category
Technology
Tags
JavaScript
Collection
现代JavaScript教程
CreateTime
Jun 22, 2022 09:31 AM
UpdateTime
Dec 11, 2023 12:12 PM
Published
Published
变量数据类型交互类型转换字符串转换数字类型转换布尔类型转换基础运算符、数学术语数学数字转化运算符优先级赋值运算符 原地修改自增自减位运算符值的比较比较结果为Boolean字符串的比较不同类型的比较条件分支:if 和 ?逻辑运算符循环 while 和 forwhiledo whileforbreak continue 标签switch函数声明函数表达式函数是一个值回调函数匿名函数箭头函数基础知识
变量
- var
- let
- const
数据类型
8种数据类型,7种基本类型和1种复杂类型object
- Number:代表整数和浮点数,还有特殊数值,无法表示大于 或者小于
- 整数
- 浮点数
- 特殊数值
- Infinity 无穷大
- NaN 代表一个计算错误。它是一个不正确的或者一个未定义的数学操作所得到的结果
- BigInt:表示任意长度的整数
- String:字符串
- Boolean:逻辑类型
- Null:不属于任何一种类型
- Undefined:未被赋值
- Symbol:
- object:
交互
- alert
- prompt
- confirm
类型转换
字符串转换
let a = true alert(a) a = String(value) // 现在是字符串形式的true
数字类型转换
alert("6" / "2") // string会转换成number类型进行转换 Number("6") // 6 Number("你好") // NaN
Number 类型转换规则
值 | result |
undefined | NaN |
null | 0 |
true / false | 1 / 0 |
string | 去掉首尾空格后纯数字,如果剩余字符为空则结果为0,否则将从剩余字符串读取数字,当类型转换错误则为NaN |
布尔类型转换
- 直观上为”空“的值都为false(0、””、null、undefined、NaA)
- 其他为true
包含0的字符串”0“ 为true,包含空格的字符 ” “ 也是true
Boolean(1) // true Boolean(0) // false Boolean("abc") // true Boolean("") // false
基础运算符、数学
术语
- 运算元:运算符应用的对象,1 + 2,有两个运算元1、2
- 一元运算符:一个运算符只有一个运算元
let a = 1; a = -a
- 二元运算符:一个运算符有两个运算元
let a = 1 let b = 2 alert(a + b)
数学
支持一下数字运算
- 加 +
- 减 -
- 乘 *
- 除 /
- 求余 %
- 求幂 ** :a ** b =
数字转化
一元运算符 + 号如果运算元不是数字,可以将其转换为数字
+true // 1 +"" // 0 +undefined // NaN
运算符优先级
赋值运算符
- 赋值 =
let a = 1 + 1
- 链式赋值
let a, b, c; a = b = c = 1
原地修改
所有算术和位运算符都有简短的“修改并赋值”运算符:
/= 和 -= 等。let a = 2 a += a a *= a a /= a a -= a
自增自减
- 自增
++
- 自减
--
- 当运算符置于变量后,被称为“后置形式”:
counter++。
let a = 2 let b = a++ console.log(a, b) // 3, 2
- 当运算符置于变量前,被称为“前置形式”:
++counter。
let a = 2 let b = ++a console.log(a, b) // 3, 3
位运算符
- 按位与 (
&)
- 按位或 (
|)
- 按位异或 (
^)
- 按位非 (
~)
- 左移 (
<<)
- 右移 (
>>)
- 无符号右移 (
>>>)
值的比较
比较结果为Boolean
字符串的比较
不同类型的比较
条件分支:if 和 ?
逻辑运算符
- || 或
- && 与
- ! 非 :可以用来求Boolean
!!0 // false !0 true
- ?? 空值合并运算符
循环 while 和 for
while
do while
for
break continue 标签
label: for(let a = 0; a < 10; a++) { if(a === 2) break label; }
switch
switch () { case '': { break; } case '': { break; } default: { break } }
函数声明
function showMessage() {}
函数表达式
let showMessage = function() {}
函数是一个值
function sayHi() { alert('Hello') } let fuc = sayHi; fuc() sayHi()
回调函数
function ask(question, yes, no) { if (confirm(question)) yes() else no(); } function showOk() { alert( "You agreed." ); } function showCancel() { alert( "You canceled the execution." ); } // 用法:函数 showOk 和 showCancel 被作为参数传入到 ask ask("Do you agree?", showOk, showCancel);
匿名函数
匿名函数这样的函数无法在ask函数声明外被调用访问
function ask(question, yes, no) { if (confirm(question)) yes() else no(); } ask("Do you agree?", function() {alert('yes')}, function() {alert("no")});


