wiki.busyhe.comHomeblogmecontact me现代JavaScript教程-基础知识JavaScript 基础知识https://zh.javascript.info/first-steps
数据类型8种数据类型,7种基本类型和1种复杂类型objectNumber:代表整数和浮点数,还有特殊数值,无法表示大于 或者小于 整数浮点数特殊数值Infinity 无穷大NaN 代表一个计算错误。它是一个不正确的或者一个未定义的数学操作所得到的结果BigInt:表示任意长度的整数String:字符串Boolean:逻辑类型 Null:不属于任何一种类型Undefined:未被赋值Symbol:object:
数字类型转换alert("6" / "2") // string会转换成number类型进行转换 Number("6") // 6 Number("你好") // NaNNumber 类型转换规则值resultundefinedNaNnull0true / false1 / 0string去掉首尾空格后纯数字,如果剩余字符为空则结果为0,否则将从剩余字符串读取数字,当类型转换错误则为NaN
布尔类型转换直观上为”空“的值都为false(0、””、null、undefined、NaA)其他为true💡包含0的字符串”0“ 为true,包含空格的字符 ” “ 也是trueBoolean(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)
运算符优先级Operator precedence - JavaScript | MDNConsider an expression describable by the representation below. Note that both OP1 and OP2 are fill-in-the-blanks for OPerators. If OP1 and OP2 have different precedence levels (see the table below), the operator with the highest precedence goes first and associativity does not matter.https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#table
自增自减自增 ++自减 --当运算符置于变量后,被称为“后置形式”: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
位运算符表达式与运算符 - JavaScript | MDN一元操作符仅对应一个操作数。 操作符,删除一个对象的属性或者一个数组中某一个键值。语法如下: objectName是一个对象名, property 是一个已经存在的属性, index 是数组中的一个已经存在的键值的索引值。 第三行的形式只在声明的状态下是合法的, 从对象中删除一个属性。 你能使用 delete 删除各种各样的隐式声明, 但是被 var 声明的除外。 如果 delete 操作成功,属性或者元素会变成 undefined。如果 delete可行会返回 true,如果不成功返回 false 。 删除数组元素 删除数组中的元素时,数组的长度是不变的,例如删除 a[3], a[4], a[4] 和 a[3] 仍然存在变成了 undefined 。 delete 删除数组中的一个元素,这个元素就不在数组中了。例如, trees[3]被删除, trees[3] 仍然可寻址并返回 undefined 。 如果想让数组中存在一个元素但是是 undefined值,使用 undefined关键字而不是 delete操作。如下: trees[3] 分配一个 undefined,但是这个数组元素仍然存在: typeof 操作符 可通过下面 2 种方式使用: typeof 操作符返回一个表示 operand 类型的字符串值。operand 可为字符串、变量、关键词或对象,其类型将被返回。operand 两侧的括号为可选。 假设你定义了如下的变量: typeof 操作符将会返回如下的结果: 对于关键词 true 和 null, typeof 操作符将会返回如下结果: 对于一个数值或字符串, typeof 操作符将会返回如下结果: 对于属性值,typeof 操作符将会返回属性所包含值的类型: 对于方法和函数,typeof 操作符将会返回如下结果: 对于预定义的对象,typeof 操作符将会返回如下结果: void 运算符运用方法如下: void 运算符,表明一个运算没有返回值。expression 是 javaScript 表达式,括号中的表达式是一个可选项,当然使用该方式是一种好的形式。 你可以使用 void 运算符指明一个超文本链接。该表达式是有效的,但是并不会在当前文档中进行加载。 如下创建了一个超链接文本,当用户单击该文本时,不会有任何效果。 下面的代码创建了一个超链接,当用户单击它时,提交一个表单。https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Expressions_and_Operators按位与 ( & )按位或 ( | )按位异或 ( ^ )按位非 ( ~ )左移 ( << )右移 ( >> )无符号右移 ( >>> )
回调函数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")});