return 在函数之外 错误解决

在做点击链接不产生任何效果的时候,之前一直用得好好的javascript:return false 竟然报return 在函数之外这个错误,上网查了下,有的说是将JS文件编码换成utf-8就OK,但是由于系统转换编码时会造成其它问题(乱码),就PASS了这个方法,后来由一篇文章得到了启发,用void(0) 搞定,文章如下:

慎用JavaScript:void(0),2008年01月09日 星期三 00:09今天调试CGI的时候,明明CGI程序已经执行,并且最后结果也是正确的,但是页面就是不刷新。在FireFox2.0下测试,结果却是正常的,IE6却偏偏不刷新!仔细调查了一下,发现cgi页面链接的是 <a href=”javaScript:void(0)” OnClick=”XXX_Func();” ….> only a sample </a>,问题就出在这个void(0)上!

让我们先来看看JavaScript中void(0)的含义:

JavaScript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。
void 操作符用法格式如下:
1. javascript:void (expression)
2. javascript:void expression
expression是一个要计算的 JavaScript 标准的表达式。表达式外侧的圆括号是可选的,但是写上去是一个好习惯。我们可以使用 void 操作符指定超级链接。表达式会被计算但是不会在当前文档处装入任何内容。面的代码创建了一个超级链接,当用户点击以后不会发生任何事。当用户点击链接时,void(0) 计算为 0,但在 JavaScript 上没有任何效果。

<a href=”javascript:void(0)”>单击此处什么也不会发生</a>

也就是说,要执行某些处理,但是不整体刷新页面的情况下,可以使用void(0),但是在需要对页面进行refresh的情况下,那就要仔细了。

其实我们可以这样用<a href=”javascript:void(document.form.submit())”>,这句话会进行一次submit操作。那什么情况下用void(0)比较多呢,无刷新,当然是Ajax了,看一下Ajax的web页面的话,一般都会看到有很多的void(0),:) ,所以在使用void(0)之前,最好先想一想,这个页面是否需要整体刷新 

### Python 中 `return` 关键字的使用规则 在 Python 中,`return` 是用于结束函数执行并返回一个值的关键字。如果尝试在函数外部使用 `return`,Python 解释器会抛出语法错误 `SyntaxError: 'return' outside function`[^1]。 #### 错误原因分析 `return` 的设计初衷是为了控制函数内部的行为,并允许开发者定义函数的结果输出。因此,在函数之外使用它没有任何意义,因为只有函数才能有返回值。当解释器遇到不在任何函数作用域内的 `return` 语句时,就会将其视为非法操作而报错[^2]。 以下是可能导致此错误的一些常见场景: - **缩进不正确**:由于 Python 使用缩进来表示代码块,不当的缩进可能会让 `return` 被误解为位于全局范围而非函数体内。 ```python def example(): if True: return "Success" # 缩进错误可能使下面这行被理解成全局代码的一部分 return "Failure" # IndentationError 或 SyntaxError 可能发生 ``` - **逻辑结构混乱**:复杂的嵌套条件或者循环容易引起混淆,从而意外地将 `return` 放置到不合适的位置上。 #### 正确用法示例 为了防止此类错误的发生,请始终确保 `return` 处于有效的函数定义之内。如下所示是一个简单的例子来展示如何正当地运用 `return`: ```python def add_numbers(a, b): result = a + b return result # 返回计算后的结果给调用者 sum_value = add_numbers(5, 7) print(sum_value) # 输出将会是 12 ``` 此外需要注意的是,即使在一个类的方法里(即对象方法),也必须遵循同样的原则——所有的 `return` 都要处于相应的方法主体之中[^3]。 ### 总结 总之,`return` 应该只出现在那些能够真正提供数据反馈的地方—也就是各个独立的功能单元 (functions/methods) 当中;一旦脱离这些特定环境,则必然引发异常状况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值