javascript - 没有用 var 声明的 JavaScript 变量会变成全局变量吗?

标签 javascript jquery typescript

我在一个文件中有以下代码:

function refreshGridSuccess(responseText, entity) {

    oTable = $('#dataTable').dataTable({
        "sScrollX": "100%",

在我的另一个文件中:

$('#detailData')
        .on('click', '.sort-up', function (event) {
            event.preventDefault();
            var column = $(this).closest('th'),
                columnIndex = column.parent().children().index(column.get(0));
            oTable.fnSort([[columnIndex, 'asc']]);
            return false;
        })

除了这里,我没有定义oTable。这些脚本似乎有效,这是否意味着 oTable 以某种方式变成了全局变量?

现在我正尝试开始使用 Typescript,它不会在未声明的情况下接受 Otable。有没有一种方法可以将 oTable 声明为对象,或者我是否必须将其声明为与 $('#dataTable').dataTable( 返回的类型相同的对象{}) ?

最佳答案

如果您在全局范围内,则没有区别。 如果您在一个函数中,那么“var”将创建一个局部变量,“no var”将查找作用域链,直到找到该变量或到达全局作用域(此时它将创建它)。

在这里找到:What is the purpose of the var keyword and when to use it (or omit it)?

关于javascript - 没有用 var 声明的 JavaScript 变量会变成全局变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13329329/

相关文章:

javascript - 数据在元素 jquery 之后添加

javascript - 子菜单的垂直下拉菜单事件类

javascript - 将整个 json 文件作为数组加载到变量中

javascript - 使用 jQuery 删除第二个表单元素而不丢失子元素

javascript - 如何从函数返回不同的 promise ?

javascript - 禁止 iframe 显示页面

javascript - += 的异步函数

javascript - 选择器 : Get the data attribute of selected option

html - ngx-在 Angular 8 的三元条件下翻译

javascript - 访问导航方法 React-Big-Calendar 和 Typescript