I am new to JavaScript and I don't get why the type of error that is thrown is called TypeError
in the following code:
"use strict"
var ob = {a: 1};
Object.defineProperty( ob, 'B', {value: 2, writable:false} );
ob.B; // => 2
ob.B = 10;
ob.B; // => 2
It should throw something like UnassignableError
, because I cannot assign the value 10
.
Is there some value that I can assign to? What is the meaning of TypeError
in JavaScript in this context?
答案 0 :(得分:1)
来自 ECMAScript规范:
当在严格模式代码中发生赋值时,其LeftHandSide不能求值为不可解析的引用。如果确实如此,则在赋值时抛出ReferenceError异常。 LeftHandSide也可能不是对具有属性值{[[Writable]]:false}的数据属性的引用,而是对具有属性值{[[Set]]:undefined}的访问者属性的引用,也不是对不存在的引用属性的引用[[Extensible]]内部属性值为false的对象的属性。在这些情况下,会抛出TypeError异常。
此错误仅在严格模式下发生。如果没有SELECT
LEFT(SUBSTRING(col,1,CASE WHEN a= 0 THEN LEN(col) ELSE a-1 END),11) AS [ColA]
,REPLACE(SUBSTRING(col,a+1,b-a),'*','') AS [ColB]
,REPLACE(SUBSTRING(col,b+1,c-b),']','') AS [ColC]
FROM
@t
CROSS APPLY( SELECT CHARINDEX('[',Col,0)A
,CHARINDEX('*',Col,0)B
,CHARINDEX(']',Col,0)C
) Z
,分配将失败,没有任何错误,会产生完全意外的结果。
答案 1 :(得分:0)
javascript中没有像PACKAGE/src/Makevars
这样的内容。常见的错误列表可以在javascript中发生
<强>的EvalError 强> 创建一个表示有关全局函数eval()的错误的实例。
<强> InternalError该强> 创建一个实例,表示在引发JavaScript引擎中的内部错误时发生的错误。例如。 “过多的递归”。
<强>的RangeError 强> 创建一个实例,表示当数字变量或参数超出其有效范围时发生的错误。
<强>的ReferenceError 强> 创建表示取消引用无效引用时发生的错误的实例。
<强>的SyntaxError 强> 创建表示在解析eval()中的代码时发生的语法错误的实例。
<强>类型错误强> 创建一个实例,表示当变量或参数不是有效类型时发生的错误。
<强>的URIError 强> 创建一个实例,表示在encodeURI()或decodeURI()传递无效参数时发生的错误。
因此在上面的错误中,TypeError将在带有解释的代码中作为错误抛出
Installing package into ‘/home/home/R/x86_64-pc-linux-gnu-library/3.1’
(as ‘lib’ is unspecified)
* installing *source* package ‘question1’ ...
** libs
gcc -I/usr/share/R/include -DNDEBUG -fpic -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g -c hello.c -o hello.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o question1.so hello.o -std=gnu++11 -L/usr/lib/R/lib -lR
installing to /home/dgarolini/R/x86_64-pc-linux-gnu-library/3.1/question1/libs
** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (question1)