版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_22689423/article/details/55683702
1声明定义:
//结果为NaN,因为x没有赋值。
var x, y = 1;
console.log(x + y);
2.作用域
if (true) {
var x = 5;
}
console.log(x); // 5
es6:
if (true) {
let y = 5;
}console.log(y); //ReferenceError: y is not defined1234
//全局变量上浮
console.log(x === undefined); // logs "true"
var x = 3;
//方法变量上浮
var myvar = "my value";
// 打印变量myvar结果为:undefined
(function() {
console.log(myvar); // undefined
var myvar = "local value";
})();
3.数据结构和类型
- 6个基础类型: Boolean null undefine Number(NAN) String Symbol
- 1个对象类型:object
4.数据转换 字符串转换为数字可使用parseInt和parseFloat方法
5.数据类型文本化
文本化类型:Array、Boolean、Floating-point 、integers、Object、RegExp、String。
对象属性:属性名可以是任意字符串或者空字符串,无效的名字可通过引号包含起来。复杂的名字不能通过.获取,但可以通过[]获取
console.log(unusualPropertyNames.!); // SyntaxError: Unexpected token !
console.log(unusualPropertyNames["!"]); // Bang!
6.块表达式
while (x < 10) {
x++;
} //{x++;}就是一个块声明
var x = 1;
{
var x = 2;
}
console.log(x); // outputs 2
7.简单boolean和对象Boolean类型有区别
var b = new Boolean(false);
if (b) // 返回true
if (b == true) // 返回false
8自定义异常
// 创建一个对象类型UserException
function UserException(message) {
this.message = message;
this.name = "UserException";
}
//重写toString方法,在抛出异常时能直接获取有用信息
UserException.prototype.toString = function() {
return this.name + ': "' + this.message + '"';
}
// 创建一个对象实体并抛出它
throw new UserException("Value too high");
9.finally返回值:如果finaly添加了return 语句,则不管整个try.catch返回什么,返回值都是finally的return
function f() {
try {
console.log(0);
throw "bogus";
} catch(e) {
console.log(1);
return true; // 返回语句被暂停,直到finally执行完成
console.log(2); // 不会执行的代码
} finally {
console.log(3);
return false; //覆盖try.catch的返回
console.log(4); //不会执行的代码
}
// "return false" is executed now
console.log(5); // not reachable
}
f(); // 输出 0, 1, 3; 返回 false