Heim Web-Frontend js-Tutorial ECMAScript 基础知识_javascript技巧

ECMAScript 基础知识_javascript技巧

May 16, 2016 pm 07:11 PM
ecmascript 基础知识

JavaScript的核心之一ECMAScript的语言特性和Java、C、Perl都有许多相似之处,其中不少特性都是从这些语言借鉴而来,同时它们之间也存在许多差异。下面列举一些ECMAScript的基本特性。

   --和Java一样,ECMAScript区分大小写,注释的格式相同,通过{}确定代码块,原始数据类型存储在堆栈,对象的引用存储在堆中
   --ECMAScript是一种松散的语言,ECMAScript通过var操作符声明变量,并且不限类型,例如var n = 25,那么n就是数字类型,var n = "string" ,那么n就是String类型
   --在每一行代码后,可以不写分号,ECMAScript自动认为该行的末尾为该行代码的最后;ECMAScript中的变量可以不用初始化,在幕后系统将自动完成初始化操作
   --同一变量可以赋予不同类型的数据;变量的第一个字符只能是字母、下划线或$ ,其他的字符可以是下划线、$、或任意的字母、数字、字符
   --和其他语言一样,变量最好遵循驼峰书写法,或Pascal表示法、或匈牙利表示法
   --和大多数语言不同的是, ECMAScript 变量在使用之前可以不必声明,系统会自动将该变量声明为全局变量,例如var m = " Good " ; n = m + " Morning " ; alert(n)输出结构是 " Good Morning " 
   --在大多数语言里,String是对象,在ECMAScript中却是原始数据类型

   原始数据类型 

   ECMAScript原始数据类型有五种:Undefined、Null、Boolean、Number、String。

   typeof—判断变量和值的数据类型,通常有undefined、boolean、number、string、object五种类型。
   Undefined—当变量被声明但没有初始化,或函数没有明确返回一个值的时候,该变量或函数即为 Undefined 类型。
   Null—undefined是null的一种派生,当代表一个对象的值不存在时,该对象返回null。
   Boolean—包含两个值,true and false , false不等于0,但0可以转换为false 。
   Number—可以定义32位整型数据或64位浮点型数据。定义数字类型变量时,在数字前加0即为八进制,加0x为十六进制,它们计算后返回的结果统一为十进制。通过var f = 1.0可以定义一个浮点类型变量,有意思的是,当f被用于计算之前,它实际是以 String类型存储的。当浮点类型数据很大或很小时(可以前后移动六位),将使用E表示法来表示浮点数据,最大可以存储17位数据。另外,isFinite()方法可以判断一个数值是否有限,isNaN()方法可以判断一个数据是非数字类型。
   String—String在ECMAScript中是原始数据类型,并且是唯一没有空间大小限制的数据类型。和Java不同的是,var s = " javascript " 和var s = 'javascript'均是合法的表示方法。

   数据转换 

   在不同数据类型之间转换是任何一门编程语言的一个重要特性,ECMAScript提供了一系列简单的方法来实现数据的转换,大多数数据类型都提供了简单的转换方法,对于复杂的转换则有一些全局方法来完成,不管是哪一种方法,ECMAScript中数据转换都非常简单。 

   Boolean、number和string数据类型是原始数据类型,但它们同时是伪对象(在ECMAScript中伪对象到底该怎么解释,运行机制如何还不清楚?有人知道请给予解答),拥有自己的属性和方法,可以通过toString()方法来实现string类型的转换。ECMAScript定义所有的对象,不管是伪对象还是真实的对象,都可以实现toString()方法,string被列为伪对象的行列,自然也拥有toString()方法。将数字类型数据转换为string的时候,可以在 toString() 方法中加入2、8、16参数,来实现不同进制的数据输出,例如var n = 10; alert(n.toString(2))输出为1010,alert(n.toString(8))输出为12,n.toString()和n.toString(10)相同。 

   ECMAScript提供了两种方法来实现string类型转化为数字类型的方法:parseInt()和parseFloat()。其他类型转换将会返回 NaN(Not a Number)。

   Type Casting

   ECMAScript数据类型的转换通常可以通过三个方法来实现:Boolean(value)、Number(value)和String(value),这样通常会产生一些非预期的结果。

   Boolean



var b1 = Boolean( "" );  // false–empty string 
var b2 = Boolean( " hi " );  // true–non-empty string 
var b3 = Boolean( 100 );  // true–non-zero number 
var b4 = Boolean( null );  // false-null 
var b5 = Boolean( 0 );  // false-zero 
var b6 = Boolean( new Object());  // true–object 

   Number 



Number( false )  0 
Number( true )   1 
Number(undefined) NaN
Number( null )  0 
Number( " 5.5 " )  5.5 
Number( " 56 " )  56 
Number( " 5.6.7 " ) NaN
Number( new Object()) NaN
Number( 100 )  100 

   String

   String()能实现所有类型数据的直接转换,和使用toString()不同的是,String()能够将null或undefined数据转换为string。

   引用类型

   ECMAScript 实际上并没有传统意义上的类,只是通过定义对象来等同于其他语言中的类,这一点我还比较含糊,以后可能会明白,在文中还是以“类”来说明。



var  ob  =   new  Object(); 

   以上定义了一个Object对象的实例,这种语法和Java比较类似。当有参数的时候需要括号来引用,当不存在参数时,括号可以去掉。由于ECMAScript语言比较松散,不管是前面所属的基础语法,还是后面将提到的语法知识,我们都应该尽量按照一定的书写规范来约定自己的代码格式,而不应充分发挥语言松散的特点。

   Object类

   Object类和Java里的java.lang.Object类比较相似,它是ECMAScript中其他所有类的基类,它具有如下属性:

   constructor—建立对象的函数的一个引用,对于Object类而言,该引用指向本地Object()方法。
   prototype—对象里prototype对象的一个引用值。

   Object 类拥有的方法:

   hasOwnProperty(property)—判断property属性是否存在于对象中,property数据类型为string
   isPrototypeOf(object)— 判断一个对象是否是另一对象的 prototype
   propertyIsEnumerable(property)— 判断所给出的属性能否使用 for 语句列举出来
   toString()—返回对象的原始类型string
   valueOf()—返回对象合适的原始值,对于多数类而言,返回的值和toString()相同
   Object类的每一个属性和方法都被其他的类所重写

   Boolean类

   定义方法var ob = new Boolean(true); ob是Boolean原始数据类型的一个引用。在使用Boolean对象过程中,需要注意,所有的对象会自动转变为true,因此var ob1 = new Boolean(false);  var ob2 = ob1 && true; 最后ob2的值是true,非false。一般情况下,使用Boolean原始数据类型可以避免这种情况。

   Number类

   定义方法var o = new Number(15);
   获得原始数据的值var n = o.valueOf();

   Number类有一些为数字类型的值特别设计的方法:



alert(o.toFixed( 2 ));   // 输出15.00 
alert(o.toExponential( 1 ));   // 输出1.5e+1 

   在无法确定使用 toFixed 还是 toExponential 的时候,可以使用 toPrecision 方法来获得取值:



alert(o.toPrecision( 1 ));   // 输出 2e+1 
alert(o.toPrecision( 2 ));   // 输出 15 
alert(o.toPrecision( 3 ));   // 输出 15.0 

   String类

   String类是一种复杂引用类型,这里仅列出一些常见的方法,其中不少都是模仿java.lang.String:



var  s  =   new  String( " Good Morning " );
alert(s.valueOf()  ==  s.toString());   // 输出true 
alert(s.length);   // 输出12 
alert(s.charAt( 1 ));   // 输出o 
var  sr  =  s.concat( "  ! " ); alert(sr);   // 输出Good morning ! 
alert(s.indexOf( " o " );   // 输出1 
alert(s.lastIndexOf( " o " );   // 输出6 
alert(s.localeCompare(Good morning));   // 输出0 
alert(s.localeCompare(Apple));   // 输出1 
alert(s.localeCompare(House));   // 输出-1 
alert(s.slice( 2 ));   //  输出od morning 
alert(s.substring( 2 ));   //  输出od morning 
alert(s.slice( 2 ,  - 5 ));   //  输出od mo 
alert(s.substring( 2 ,  - 5 ));   // 输出Go 
alert(s.toUpperCase());   // 输出GOOD MORNING 
alert(s.toLowerCase());   // 输出good morning 

   另外,所有String类的方法同样可以用于String原始数据类型,因为它是伪对象。

   instanceof 

   instanceof操作符和typeof作用类似,不同的是,instanceof需要明确指定对象是否属于某种特定类型。例如



var  s  =   new  String( " Good morning ! " );
alert(s  instanceof  String); 

   操作符和语句 

   ECMAScript 中大多数操作符、语句和 Java 都比较类似,但也有一些其特有的,如 label 语句, with 语句, for-in 语句等等。

   Functions

   Functions是ECMAScript的核心,在任何时候任何地方都可以运行的一组代码语句。



 function  functionName(arg0, arg1, …… , argN)   {
 statements


   当function没有返回值或return语句后没有值的时候,该function实际上会被系统定义为undefined,当function返回值的时候,function可以不必明确指定为某种数据类型。

   关于重载

   重载是面向对象语言的基本特性之一,但 ECMAScript 的 functions 并不能重载,在同一范围里可以定义两个完全相同的函数,在调用函数的时候,最后的一个函数发挥作用。这种特性比较麻烦,但可以通过 arguments 对象来实现和重载类似的功能。



 function  func()   {
  if (arguments.length  ==   1 )   {
   alert(arguments[ 0 ]  +   5 );
 }   else   if  (arguments.length  ==   2 )   {
     alert(arguments[ 0 ]  +  arguments[ 1 ]);
   } 


func( 5 );   // 输出10 
func( 10 ,  15 );   // 输出25 

   前面提到过,在同一范围里可以定义两个完全相同的function,在调用function的时候,最后的一个function发挥作用。



 function  func(i)   {
 alert(i  +   10 );

 function  func(i)   {
 alert(i  +   20 );

func( 5 );   // 输出25 

   可以看出,是调用了最后的一个function使得数据结果为25,如果使用Function类来定义以上两个函数,那为什么会使用最后的一个function可能会更明确一些。 



var  func  =   new  Function(“i”, “alert(i  +   10 )”);
var  func  =   new  Function(“i”, “alert(i  +   20 )”);
func( 5 ); 

   func指向了另外一个引用,从而值发生了改变,func是作为function对象的引用而存在的,并且允许两个变量指向同一个 function。

   和Function类相关的属性、方法有许多,例如length、toString()、valueOf()等等。其中toString()在调试程序中使用较多。 

原文:http://www.blogjava.net/flyingis/archive/2006/06/13/52484.html 

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ist es2017 es6 oder es8? Ist es2017 es6 oder es8? Oct 27, 2022 pm 05:37 PM

es2017 ist es8. Der vollständige Name von es ist „ECMAScript“, eine universelle Skriptsprache, die gemäß dem ECMA-262-Standard implementiert wurde. Die im Juni 2017 offiziell veröffentlichte Version heißt offiziell ECMAScript2017 (ES2017). kann als es8 bezeichnet werden.

Eine schnelle und detaillierte Erklärung aller Funktionen von ES6~ES12 in einem Artikel! Eine schnelle und detaillierte Erklärung aller Funktionen von ES6~ES12 in einem Artikel! Jul 22, 2022 am 11:06 AM

In diesem Artikel werden die Funktionen von ECMAScript erläutert und mit Ihnen geteilt. Es dauert eine Stunde, bis Sie alle Funktionen von ES6 ~ ES12 schnell verstanden haben. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Lernen Sie von Grund auf: Beherrschen Sie die Grundlagen der Go-Sprache Lernen Sie von Grund auf: Beherrschen Sie die Grundlagen der Go-Sprache Feb 01, 2024 am 08:45 AM

Von Grund auf neu beginnen: Einführung in die Grundlagen des Erlernens der Go-Sprache. Die Go-Sprache, auch bekannt als Golang, ist eine von Google entwickelte Open-Source-Programmiersprache. Sie wurde 2009 veröffentlicht und entwickelte sich schnell zu einer beliebten Sprache, insbesondere in Bereichen wie Webentwicklung, verteilten Systemen und Cloud Computing. Die Go-Sprache ist für ihre Einfachheit, Effizienz und starke Parallelität bekannt. Grundlegende Syntax 1. Variablen und Konstanten In der Go-Sprache werden Variablen und Konstanten typisiert. Variablen können Daten speichern, während Konstanten nicht geändert werden können. Das Deklarationsformat von Variablen ist: v

Eine Pflichtlektüre zum Erlernen von MySQL! Ausführliche Erläuterung der Grundkenntnisse von SQL-Anweisungen Eine Pflichtlektüre zum Erlernen von MySQL! Ausführliche Erläuterung der Grundkenntnisse von SQL-Anweisungen Jun 15, 2023 pm 09:00 PM

MySQL ist ein relationales Open-Source-Datenbankverwaltungssystem, das häufig in der Entwicklung von Webanwendungen und der Datenspeicherung eingesetzt wird. Das Erlernen der SQL-Sprache von MySQL ist für Datenmanager und Entwickler unbedingt erforderlich. Die SQL-Sprache ist der Kernbestandteil von MySQL. Bevor Sie MySQL lernen, müssen Sie die SQL-Sprache vollständig verstehen. Dieser Artikel soll Ihnen die Grundkenntnisse von SQL-Anweisungen im Detail erklären, damit Sie SQL-Anweisungen Schritt für Schritt verstehen können Schritt. SQL ist die Abkürzung für Structured Query Language, die in relationalen Daten verwendet wird

Welche grundlegenden Konzepte müssen Sie verstehen, um Canvas zu lernen? Welche grundlegenden Konzepte müssen Sie verstehen, um Canvas zu lernen? Jan 17, 2024 am 10:37 AM

Welche Grundkenntnisse sind zum Erlernen von Canvas erforderlich? Mit der Entwicklung moderner Webtechnologie ist die Verwendung des <canvas>-Tags in HTML5 zum Zeichnen zu einer gängigen Methode geworden. Canvas ist ein HTML-Element zum Zeichnen von Grafiken, Animationen und anderen Bildern, das mit JavaScript manipuliert und gesteuert werden kann. Wenn Sie Canvas erlernen und dessen Grundkenntnisse beherrschen möchten, wird es Ihnen im Folgenden ausführlich vorgestellt. HTML- und CSS-Grundlagen: Bevor Sie Canvas lernen

Anfängerleitfaden zur Go-Programmierung: Grundkenntnisse und praktische Anwendungen Anfängerleitfaden zur Go-Programmierung: Grundkenntnisse und praktische Anwendungen Jan 23, 2024 am 09:31 AM

Schnellstart-Go-Programmierung: Grundlagenwissen und Übungsleitfaden Go ist eine aufstrebende Programmiersprache und wird von Entwicklern aufgrund seiner Einfachheit, Effizienz und Parallelität bevorzugt. Egal, ob Sie Anfänger oder Entwickler mit etwas Programmiererfahrung sind, dieser Artikel führt Sie schnell in die Go-Programmierung ein und bietet einige praktische Richtlinien und spezifische Codebeispiele. 1. Installieren Sie die Go-Sprachumgebung. Um mit der Programmierung in der Go-Sprache zu beginnen, müssen Sie zunächst die Go-Sprachumgebung auf Ihrem Computer installieren. Sie können es von der offiziellen Go-Website herunterladen (https://golang

Einige Grundkenntnisse des Yii-Frameworks Einige Grundkenntnisse des Yii-Frameworks Jun 21, 2023 pm 07:07 PM

Yii ist ein beliebtes objektorientiertes PHP-Framework. Sein vollständiger Name ist „YesItIs“, was „Ja, es ist so“ bedeutet. Es ist auf Effizienz, Schnelligkeit, Sicherheit und Benutzerfreundlichkeit ausgelegt und wird daher häufig bei der Entwicklung umfangreicher Webanwendungen eingesetzt. In diesem Artikel stellen wir einige Grundkenntnisse des Yii-Frameworks vor, um Anfängern ein besseres Verständnis dieses Frameworks zu ermöglichen. Das Yii-Framework der MVC-Architektur verwendet ein auf MVC (Model-View-Controller) basierendes Entwurfsmuster

Eine ausführliche Untersuchung der Grundlagen der Go-Sprachprogrammierung Eine ausführliche Untersuchung der Grundlagen der Go-Sprachprogrammierung Mar 05, 2024 am 08:15 AM

„Ausführliche Diskussion über die Grundlagen der Go-Sprachprogrammierung: Analyse spezifischer Codebeispiele“ Als schnelle und effiziente Programmiersprache wird die Go-Sprache zunehmend von Programmierern und Entwicklern bevorzugt. Beim Erlernen und Beherrschen der Go-Sprache ist ein tiefes Verständnis ihrer Grundlagen von entscheidender Bedeutung. In diesem Artikel werden Variablen, Datentypen, Prozesssteuerung, Funktionen usw. ausführlich erörtert und mit spezifischen Codebeispielen kombiniert, um den Lesern zu helfen, die Grundkenntnisse der Go-Sprache besser zu verstehen und zu beherrschen. Variablen und Datentypen In der Go-Sprache sind die Deklaration und Initialisierung von Variablen sehr unterschiedlich

See all articles