• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

gino先森

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

JavaScript学习笔记【DAY12(2020.9.1)周二】

 

ES5(2009)

严格模式

因为JS是一门很随心 很随意的语言 而且因为设计之初遗留了很多不好的地方 这就给开发人员制造了很多困扰 而且也有开发人员给开发人员制造困扰
为了解决这些问题 ES5 中 增加了一个 "严格模式" 严格要求开发人员的代码书写

严格模式对正常的 JavaScript 语义做了一些更改:

1.消除了 Javascript 语法的一些不合理、不严谨之处,减少了一些怪异行为。

2.消除代码运行的一些不安全之处,保证代码运行的安全。

3.提高编译器效率,增加运行速度。

4.禁用了在 ECMAScript 的未来版本中可能会定义的一些语法,为未来新版本的 Javascript 做好铺垫。比如一些保留字如:class,enum,export, extends, import, super 不能做变量名

 

开启严格模式:

 

情况一 :为脚本开启严格模式(在当前作用域的第一行 使用字符串 use strict;)

情况二: 为函数开启严格模式

 

1、声明变量必须使用var

num = 10;
console.log(num);
// 开启严格模式之后 报错: num is not defined

2、函数的形参不可以重名

function demo(a, a, b, c, d) {
   console.log(a, b, c, d);
}
demo(1, 2, 3, 4, 5);
// 开启严格模式之后 报错: Uncaught SyntaxError: Duplicate parameter name not allowed in this context

3、不可以使用八进制

var num = 044;
console.log(num); // 36
// 开启严格模式之后 报错: Uncaught SyntaxError: Octal literals are not allowed in strict mode.

4、不可以使用保留字作为变量名

var implements = 123;

console.log(implements);

// 开启严格模式之后 Uncaught SyntaxError: Unexpected strict mode reserved word

5、eval 是一个函数,可以将字符串当代码执行

eval("var a = 10;");

console.log(a);

// 开启严格模式之后 eval执行的代码 不会影响到当前的作用域了 会独立给eval强制开辟一个作用域

// Uncaught ReferenceError: a is not defined

6、函数的形参与arguments是分开的,

7、不能删除已经声明好的变量

8、严格模式下不能用with语句

9、函数不能有重名的参数。

10、严格模式下this指向问题

① 以前在全局作用域函数中的 this 指向 window 对象。

② 严格模式下全局作用域中函数中的 this 是 undefined。

③ 以前构造函数时不加 new也可以 调用,当普通函数,this 指向全局对象

④ 严格模式下,如果构造函数不加new调用, this指向的是undefined如果给他赋值则会报错

⑤ new 实例化的构造函数指向创建的对象实例。

⑥ 定时器 this 还是指向 window 。

⑦ 事件、对象还是指向调用者

 


 

JSON:(JavaScript Object Notation(符号、注释))

JSON是一种数据格式。

JSON格式要求:

1、每一个属性名必须由双引号包裹,每一个字符串必须由双引号包裹,不能有注释;

2、最后一个逗号必须省略,ES5中新增了一个JSON对象。

作用:用于将对象和数组转为字符串形式,也用于将字符串形式的对象和数组转为真正的对象。

stringify(object | arr):用于将对象转为字符串

参数是对象或者数组

返回值 JSON字符串

parse(JSONString):用于将JSON格式的字符串转为对象

参数是JSON字符串

返回值 是对象或者数组

parse方法接受的参数如果不是合格的JSON字符串,则会报错

注: 字符串形式也叫做JSON字符串

posted on 2020-12-06 17:06  gino先森  阅读(65)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3