分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

关于js中++的小问题

发布时间:2023-09-06 01:09责任编辑:白小东关键词:js

先看下面两个代码,为什么第一行正常(编译/运行),但第二行给出错误?注意是ReferenceError。

[[]][0]++; ??????????[]++; #Uncaught ReferenceError: Invalid left-hand side expression in postfix operation

第一想法[[]][0]应该和[ ]是一样的,所以两者都应该工作,或者两者都应该失败。

首先,这不是一个SyntaxError!这是一个运行时错误ReferenceError。所以[ ]++是语法允许的。

想要解决这个问题,就应该查查什么事ReferenceError。再看下面:

2=3#Uncaught ReferenceError: Invalid left-hand side in assignment

这个错误和上面的错误一样。

因为这两个操作都使用称为“PutValue”的规范中的抽??象算法。该算法的第3步说:

  如果Type(V)不是Reference,则抛出ReferenceError异常。

注意:成员表达式的结果不是值本身([]),而是Reference对该值的影响 。所以事实上,[0]访问是给我们提到外部数组的第0个位置,

而不是给我们这个位置的实际值。

关于js中++的小问题

原文地址:http://www.cnblogs.com/greatfish/p/7499858.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved