JavaScript严格模式不支持八进制的问题讲解

关于JavaScript严格模式不支持八进制的这个问题,首先我们大家都知道JavaScript是可以通过在数字前面加0表示八进制,

如下:

let i = 011;
console.log(i); // 9

但是在严格模式下,这种方式就出了问题:

"use strict";
let i = 011; // 报错
// Uncaught SyntaxError: Octal literals are not allowed in strict mode.
console.log(i);

意思就是八进制在严格模式下不支持。

如果一定要用,可以用过曲线救国的方式:

把八进制的数据设置为字符串,然后通过parseInt进行转化,设置转化进制为八进制。

"use strict";
let i = '011';
console.log(parseInt(i, 8)); // 9

到此这篇关于JavaScript严格模式不支持八进制的问题讲解的文章就讲解完了,更多相关JavaScript严格模式内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 深入浅析JS中的严格模式

    什么是严格模式? 使JS编码更加规范化的模式,消除Javascript语法的一些不合理.不严谨之处,减少一些怪异行为 怎么使用? 直接添加下面的这句字符串就可以了,这种语法可以向后兼容,如果是不支持严格模式的javascript引擎,就会直接当成是一个未赋值的字符串字面量,会直接忽略,支持的引擎就会开启严格模式 'use strict' 说明: 1.在全局作用域使用的话,那整个js脚本就会开启这种模式 2.如果是只在函数内部使用的话,那么就只是该函数内部开启而已 function doSomet

  • JS严格模式知识点总结

    所谓严格模式其实就是一个不会赋值给任何变量的字符串 "use strict" 如果在全局作用域下 给出这个提示,那整个脚本将采用严格模式.也可以只在函数中打开严格模式 1.严格模式下没有全局变量 a="test" 严格模式下会报错,非严格模式下正常 2.删除变量 var 有三种声明的情形 var 声明的全局变量 var 声明的局部变量 eval()中声明的全局变量 第一种和第二种情况是无法用 delete删掉的. 首先第一种情况声明的全局对象虽然是windows的属

  • 在JavaScript中使用严格模式(Strict Mode)

    前言 ECMAScript5中引入的严格模式,通过让JavaScript运行环境对一些开发过程中最常见和不易发现的错误做出和当前不同的处理,来让开发者拥有一个"更好"的JavaScript语言.很长一段时间内,由于只有Firefox支持严格模式,我曾对严格模式表示怀疑.但到了今天,所有主流的浏览器都在他们的最新版本中支持了严格模式(包括IE10,Opera12和Android4,IOS5)是时候开始使用严格模式了. 严格模式能起到什么作用? 严格模式为JavaScript引入了很多变化

  • JavaScript严格模式下关于this的几种指向详解

    前言 相信不少人在学习或者使用Javascript的时候,都曾经被 JavaScript 中的 this 弄晕了,那么本文就来整理总结一下在严格模式下 this 的几种指向. 一.全局作用域中的this 在严格模式下,在全局作用域中,this指向window对象 "use strict"; console.log("严格模式"); console.log("在全局作用域中的this"); console.log("this.docume

  • JavaScript 严格模式(use strict)用法实例分析

    本文实例讲述了JavaScript 严格模式(use strict)用法.分享给大家供大家参考,具体如下: 使用"use strict" 的目的是指定代码在严格条件下执行. 严格模式通过在脚本或函数的头部添加 "use strict"; 表达式来声明. 不允许使用未声明的变量. "use strict"; myFunction(); function myFunction() { y = 3.14; // 报错 (y 未定义) } 在函数内部声明

  • JS严格模式原理与用法实例分析

    本文实例讲述了JS严格模式原理与用法.分享给大家供大家参考,具体如下: 使用 "use strict" 指令 "use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增. 它不是一条语句,但是是一个字面量表达式,在 JavaScript 旧版本中会被忽略. 支持严格模式的浏览器: Internet Explorer 10 +. Firefox  4+ Chrome  13+. Safari 5.1+. Opera 12+.

  • JavaScript 引用类型实例详解【数组、对象、严格模式等】

    本文实例讲述了JavaScript 引用类型.分享给大家供大家参考,具体如下: 数组 在ECMAScript中数组是非常常用的引用类型 ECMAScript所定义的数组和其他语言中的数组有着很大的区别 数组也是一种对象 创建数组 //方法一 var arr = new Array(); //方法二 var arr1 = []; 特点 数组即一组数据的集合 js数组更加类似java的map容器.长度可变,元素类型任意 数组长度随时可变!随时可以修改!(length属性) var arr1 = [1

  • 深入理解javascript严格模式(Strict Mode)

    ECMAScript5中引入的严格模式,通过让JavaScript运行环境对一些开发过程中最常见和不易发现的错误做出和当前不同的处理,来让开发者拥有一个"更好"的JavaScript语言.很长一段时间内,由于只有Firefox支持严格模式,我曾对严格模式表示怀疑.但到了今天,所有主流的浏览器都在他们的最新版本中支持了严格模式(包括IE10,Opera12和Android4,IOS5)是时候开始使用严格模式了. 严格模式能起到什么作用? 严格模式为JavaScript引入了很多变化,我把

  • JavaScript变量提升和严格模式实例分析

    本文实例讲述了JavaScript变量提升和严格模式.分享给大家供大家参考,具体如下: 1.什么是变量提升 所谓的变量提升指的是:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体(作用域)的最顶部. 下面我们通过一个例子来详细说明一下. //变量声明在使用之前 var x; console.log(x);//undefined //变量声明在使用之后 console.log(y);//undefined var y; //上面的式子可以写成下面的样子 /* 变量提升:把x,y提

  • javascript严格模式详解(含严格模式与非严格模式的区别)

    严格模式的优缺点 优点: 提高代码解析与运行速度 禁用一些不合理的语法,减少代码的怪异行为 缺点 某些代码在严格模式下会报错,尤其引入公用与第三方模块的时候需要注意 有些严格模式的特性在不同浏览器的支持情况不同,需要注意兼容问题 严格模式与非严格模式的区别 1.禁用with语法,使用将报错 因为解析with语法时作用域的情况会非常复杂,严重影响代码的解析与运行速度 function usualMode() { with({a: 1}) { console.log(a) } } usalMode(

随机推荐