void()表达式结果是SyntaxError

void是一元运算符,他出现在操作数之前,操作数可以使任意类型,操作数会照常计算,但忽略计算结果并返回undefined。

因此在操作数具有副作用的时候使用void来让程序根据语义

console.log(void 0);//undefined;

console.log(void (0));//undefined;

常见的作用:

1.替代undefined

由于undefined并不是一个关键字,其在ie8浏览器中会被重写,在高版本函数作用域中也会被重写;所以可以用void 0来替换undefined。

var undefined = 0;

console.log(undefined);//IE8浏览器下为10,高版本浏览器下为undefined。

function test(){
    var undefined = 10;
    console.log(undefined);
}
    console.log(test());//所有浏览器下都是10

2.客户端

 

这个运算符最常用的客户端URL--JavaScript:URL中,在url中可以写带有副作用的表达式,而void则让浏览器不必显示这个变大时的计算结果。例如,经常在HTMl代码中的<a>标签里使用void运算符。

<a href=“javascript:void window.open();">打开一个新窗口</a>

3.阻止默认事件

阻止默认事件的方式是给事件设置返回值false

//一般写法

<a href="http://example.com" onclick="f();return false">文字</a>

使用void运算符可以取代上面写法

<a href="javascript:void(f())">文字</a>

所以void()表达式结果是SyntaxError

---转载自牛客网---

时间: 2024-12-13 02:50:58

void()表达式结果是SyntaxError的相关文章

js中的void

JS中的void: 1. 怎么写:void (表达式)/不带括号,无论表达式是什么,都会执行 2.返回什么:void是一个一元运算符,只是执行表达式,但是返回的结果都是undefined 3.使用场景: a连接不希望点击后跳转: <a href=“javascript:void 0”>/ <a href=“javascript::”> void 0 - undefined void(0) - undefined void() - SyntaxError 语法错误或者直接报错无法运行

void 0作用

undefine 是可以被赋值的. 但是void 操作符 通过 计算 void 后面的变量名后还是会返回一个undefined ,这样就保证了你的undefined即使被定义了,采用void 表达式,还是会得到正确的undefined 方法二 angular中采用的undefined,在一个方法中定义一个参数,但是在调用的时候不传入这个参数,然后在方法体内调用这个参数,那么得到的值就是正确的undefined.

【javaScript基础】立即调用函数表达式

在javaScript中,每个函数被调用时,都会创建一个新的执行上下文.因为在一个函数里面定义的变量和函数只能在里面访问,在外面是不行的,上下文提供了一种很容易的方法来创建私有性. //makeCounter函数返回另外一个匿名函数,这个匿名函数能够访问到"私有"变量i, 好像有一点"特权"性. function makeCounter() { // i只能在makeCounter的里面被访问到 var i = 0; return function() { cons

ISO/IEC 9899:2011 条款6.5.1——基本表达式

6.5.1 基本表达式 语法 1.primary-expression: identifier constant string-literal (    expression    ) generic-selection 语义 2.一个标识符是一个基本表达式,提供为,它作为指派一个对象(在这种情况下,它是一个左值)或一个函数(在这种情况下,它是一个函数指派符)而被声明.[注:从而,一个未声明的标识符是对此语法的违反.][译者注:比如: int a = 10; a; // 这是一个基本表达式 ]

【javaScript基础】马上调用函数表达式

在javaScript中,每一个函数被调用时,都会创建一个新的运行上下文.由于在一个函数里面定义的变量和函数仅仅能在里面訪问.在外面是不行的.上下文提供了一种非常easy的方法来创建私有性. //makeCounter函数返回另外一个匿名函数,这个匿名函数可以訪问到"私有"变量i, 好像有一点"特权"性. function makeCounter() { // i仅仅能在makeCounter的里面被訪问到 var i = 0; return function()

Objective-C—— Block

OC Block 其实功能就类似C语言的函数指针,js中的闭包之类的.把代码块当做一个变量就行操作,有自己的变量和作用域. 简单看一下Block的语法和可能出现的问题: Block语法: block语法相对宽松,很多部分都可以省略,常规上我们实现一个block需要有以下几个部分 ^ 返回值类型 参数列表 表达式 例如 ^int (int count){return count+1;};//返回值为int 参数为int 表达式为 count+1; ^void (void){NSLog(@"void

JavaScript语言精髓(1)之语法概要拾遗(转)

逻辑运算 JavaScript中支持两种逻辑运算,"逻辑或(||)"和"逻辑与(&&)",他们的使用方法与基本的布尔运算一致: var str= 'hello';var obj = {};x = str || obj;y = str && obj; 这种运算符的特殊之处在于,他既不改变运算元的数据类型,也不强制运算结果的数据类型.除此之外,还有两条特性: 运算符会将运算元理解为布尔值: 运算过程支持布尔短路. 因此上例中, x运算结果

编译原理实验 —— 语法分析器

/* 待分析的简单语言的语法 用扩充的BNF表示如下: ⑴<程序>::=begin<语句串>end ⑵<语句串>::=<语句>{:<语句>} ⑶<语句>::=<赋值语句> ⑷<赋值语句>::=ID:=<表达式> ⑸<表达式>::=<项>{+<项> | -<项>} ⑹<项>::=<因子>{*<因子> | /<因子

HTML和CSS的发现与理解

1. 结构性伪类选择器的功能定义 :first-child :选择是其父元素中的第1个子元素的元素: :last-child :选择是其父元素中的最后一个子元素的元素: :nth-child(n) :选择是其父元素中的第n个子元素的元素: :nth-last-child(n) :选择是其父元素中的倒数第n个子元素的元素: :only-child :选择是其父元素中的唯一的子元素的元素: :only-of-type :选择是其父元素中的唯一的某个元素类型的子元素的元素: :nth-of-type(