検索
ホームページウェブフロントエンドjsチュートリアルJavaScript_javascript のヒントで変数を宣言するときに var キーワードを追加する必要があるのはなぜですか

JavaScript では、変数を宣言するために var が使用されますが、この構文は厳密には必須ではありません。多くの場合、var で宣言せずに変数を直接使用できます。

コードをコピーします コードは次のとおりです:

var x = "XX"; y="xxx";

等々。たとえば、コードの特定の行で、宣言された変数 x を使用したいとします。その結果、入力またはスペルミスにより、変数は y と等価になります。実際のプログラミングプロセスでは、この種のエラーを見つけるのが難しい場合があります。
現在のコンテキストでこの「暗黙的」宣言を行うと、JavaScript エンジンはまず現在のコンテキストを調べて、この変数が以前に宣言されているかどうかを確認し、宣言されていない場合は、前のコンテキストに移動して検索します。が見つかりました。この変数は最終的にウィンドウ上で宣言されます。
例:
コードは次のとおりです:

window. y = "hello"; 
function func(){ 
y = "OH, NO!!!"; 
} 
func(); 
alert(window.y); //#=> display "OH, NO!!!" 
コンテキスト内のいずれかのレイヤーにそのような「暗黙的に」定義された変数がある場合、そのレイヤー内の変数は、ウィンドウ上に新しい変数を生成せずに変更されます。 (この種のバグは、特により複雑なコードをカプセル化する場合に非常に厄介です)

例:

コードは次のとおりです:

var x = "window.x"; 
function a() { 
var x = "a's x"; 
var b = function() { 
var c = function() { 
//no var! 
x = "c's x:"; 
}; 
alert("before c run,the b.x:" + x); 
c(); 
alert("after c run, the b.x:" + x); 
}; 
alert("a.x is:" + x); 
b(); 
alert("after b function runed, the a.x is:" + x); 
}; 
alert("before a run, window.x:" + x); 
a(); 
alert("after a run, window.x:" + x); 
次の層があります: window、func a、func b、func c は常に階層的に入れ子になっています。ウィンドウ->a->b->c

window と a の両方で変数 x が定義されていますが、b では変数が定義されておらず、c では x が「暗黙的に」宣言されており、x は最終的に変数 a の値を変更します。
JavaScript で変数を宣言するときは、その前に var.
を付ける必要があることに注意してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
深入解析C语言中static关键字的作用和用法深入解析C语言中static关键字的作用和用法Feb 20, 2024 pm 04:30 PM

深入解析C语言中static关键字的作用和用法在C语言中,static是一种非常重要的关键字,它可以被用于函数、变量和数据类型的定义上。使用static关键字可以改变对象的链接属性、作用域和生命周期,下面就来详细地解析一下static关键字在C语言中的作用和用法。static变量和函数:在函数内部使用static关键字定义的变量称为静态变量,它具有全局生命周

在 Windows 11 上修复音频服务无响应问题的 18 种方法在 Windows 11 上修复音频服务无响应问题的 18 种方法Jun 05, 2023 pm 10:23 PM

音频输出和输入需要特定的驱动程序和服务才能在Windows11上按预期工作。这些有时最终会在后台遇到错误,从而导致音频问题,如无音频输出、缺少音频设备、音频失真等。如何修复在Windows11上没有响应的音频服务我们建议您从下面提到的修复开始,并逐步完成列表,直到您设法解决您的问题。由于Windows11上的多种原因,音频服务可能无法响应。此列表将帮助您验证和修复阻止音频服务在Windows11上响应的大多数问题。请按照以下相关部分帮助您完成该过程。方法一:重启音频服务您可能会遇

C语言中go是关键字吗?详细解析C语言中go是关键字吗?详细解析Mar 16, 2024 am 10:30 AM

标题:C语言中go是关键字吗?详细解析在C语言中,"go"并不是一个关键字。C语言的关键字是由C标准规定的,用于表示特定的语法结构或者功能,在编译器中有特殊的含义,不能被用作标识符或者变量名。例如,关键字"int"表示整型数据类型,"if"表示条件语句等等。如果我们想验证在C语言中"go"是否是关键字,可以编写一个简单的程序进行测试。下面是一个例子:#inc

一起聊聊var、let以及const的区别(代码示例)一起聊聊var、let以及const的区别(代码示例)Jan 06, 2023 pm 04:25 PM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要给大家介绍了var、let以及const的区别有哪些,还有ECMAScript 和 JavaScript的关系介绍,感兴趣的朋友一起来看一下吧,希望对大家有帮助。

PHP中var关键字的作用和示例PHP中var关键字的作用和示例Jun 28, 2023 pm 08:58 PM

PHP中var关键字的作用和示例在PHP中,var关键字用于声明一个变量。以前的PHP版本中,使用var关键字是声明成员变量的惯用方式,现在已经不再推荐使用。然而,在某些情况下,var关键字依然会被使用。var关键字主要用于声明一个局部变量,并且会自动将该变量标记为局部作用域。这意味着该变量仅在当前的代码块中可见,并且不能在其他函数或代码块中访问。使用var

c语言中关键字有多少个c语言中关键字有多少个Nov 22, 2022 pm 03:39 PM

C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。数据类型关键字有12个,包括char、double、float、int等;控制语句关键字有12个,包括for、break、if、else、do等;存储类型关键字有4个,包括auto、static、extern等;其它关键字有4个,包括const、sizeof等。

go语言中while是关键字吗go语言中while是关键字吗Jun 04, 2021 pm 05:01 PM

在go语言中,while不是关键字,可以用for语句加break来实现while循环的效果,例“for {sum++ if sum>10{break}else{...}}”。go语言有break、default 、func、select、case、defer、go、map、else、goto、for、if、var等25个关键字。

PHP中extends关键字的作用和使用方法详解PHP中extends关键字的作用和使用方法详解Jun 28, 2023 pm 08:04 PM

PHP中extends关键字的作用和使用方法详解在PHP编程中,extends是一个非常重要的关键字,它用于实现类的继承。通过extends关键字,我们可以创建一个新的类,这个新类可以继承一个或多个已有的类的属性和方法。继承是面向对象编程中的重要概念,它使得代码的复用和扩展变得更加方便和灵活。本文将详细介绍extends关键字的作用和使用方法。extends

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール