变量和值
var a = 10; // 变量声明并赋值
var x = 1, y = 2;
var bar = 1;
bar = 2;
console.log(bar);
:::info
- Number
- String
- Boolean
- Undefined
- Null
- Symbol
-
堆栈内存
var a = 3;
var b = a;
a = 1;
console.log(a,b)
var arr1 = [1,2,3,4]
var arr2 = arr1;
console.log(arr1,arr2)
arr1.push(5)
console.log(arr1,arr2)
arr1 = [1,2]
console.log(arr1,arr2)
运算和运算符
++运算与—运算
- 运算符的优先级
- 字符串比较时:从左到右依次比较ASCII码的大小
- 比较时,可能会进行数据类型的转换
- 逻辑运算符:与、或、非的使用
var a = 1 && 2;
console.log(a) // 2
// 第一个为真就返回第二个的值
// 第一个为假就返回第一个的值
var b = 0 || null || 1 || 0
console.log(b)
// 遇到假就往后走,遇到真或者走到最后就返回当前的值
循环
break用于终止循环,continue用于跳过某次循环 ```javascript for(var i = 0; i < 10; i++) { console.log(i) }
var j = 0 while(j < 10) { console.log(j) }
// for(声明;判断;操作){}
// do while操作
<a name="iRr28"></a>
### typeof
```javascript
// typeof 可以用来检测基本数据类型,返回的结果都是字符串
typeof [] // object
typeof null // object
typeof undefined // undefined
typeof function() {} // function
console.log(a) // ReferenceError
console.log(typeof(a)) // undefined
console.log(typeof(typeof(a))) // string
类型转换
Number
Number()
parseInt(string,radix)
parseFloat()
+'123'
console.log(Number(null)) // 0
console.log(Number(undefined)) // NaN
var a = '10'
console.log(parseInt(a,16)) // 16
parseInt('abc123') // NaN
parseInt('123abc') // 123
parseFloat('3.1415926') // 3.1415926
var num = '3.1415926'
console.log(num.toFixed(2)) // 四舍五入保留两位小数
String
隐式类型转换
var a = '123'
a++;
console.log(a) // 124
// 在关系运算符中,null,undefined都会被Number()转为数字类型
// 相等运算符中,null和undefined都不会转换为数字类型,而是经过特殊处理转化为false
console.log(undefined == 0) // false
console.log(null == 0) // false
console.log(null == undefined) // true
isNaN
isNaN()会进行数据类型的转换,在处理的时候会判断传入的变量能否转换为数字,如果能转换为数字则会返回false,如果无法转换则会返回true
isNaN(undefind) // true
isNaN({}) // true
isNaN('王小波') // true
isNaN(null) // false
函数
函数声明
// 函数声明
function test() {
var a = b = 1;
console.log(a,b)
}
test()
console.log(a,b)
// 函数表达式
var test1 = function test2 () {}
test1()
// 匿名函数表达式
var foo = function() {}
arguments
function foo(a,b) {
console.log(a,b)
}
foo(1,2)
function bar(a,b,c) {
console.log(bar.length) // 获取形参长度
console.log(arguments)
console.log(a,b,c) // 1,2,undefined
}
bar(1,2,3)
参数默认值
function test(a = 1, b =2) {
console.log(a,b)
}
test()
function foo(a,b) {
a = a || 1;
b = b || 2;
}
foo()
function bar(a,b) {
a = typeof a === undefined ? 1 : a;
}