javascript 值得注意的一些问题

来源:互联网 发布:计算机编程历史 编辑:程序博客网 时间:2024/05/22 04:58

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); // undefinedvar 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) // 返回trueif (b == true) // 返回false

8自定义异常

// 创建一个对象类型UserExceptionfunction 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
0 0
原创粉丝点击