javascript 变量 数据类型typeof

ECMAscript语言大量借鉴了c语言及类c语言(java和Perl)的语法.因此熟悉这些语言的开发人员在接受ECMAScript更加宽松的语法时,一定会有种轻松自在的感觉。

区分大小写

要理解的第一个概念就是ECMAScript中的一切(变量、函数、操作符)都区分大小写。这也就意味着test和Test分别表示两个不同的变量,而函数名不能用typeof ,因为它是一个关键字。而typeOf则完全可以是一个有效的函数名。

标识符

所谓标识符,就是变量,函数,属性的名字或者函数的参数。标识符的规范是:

第一个字符必须是字母、下划线或一个美元符号;

其他字符可以是字母、下划线、美元符号或者数字。

按照惯例,ECMAscript标识符采用驼峰大小写格式,也就是第一个字母是小写。但是并没有强制要使用这种方式。

 

注释

单行注释是两个双斜杠 //

多行注释是

/*  

*/

严格模式

严格模式可以采用‘use strict‘

 

语句

ECMAScript中的语句是以分号结尾的,虽然语句结尾的分号不是必须的,但是我们建议任何时候都不要省略他。

变量

ECMAscript的变量是松散类型,所谓松散类型就是可以用来保存任何类型的数据。换句话说,每一个变量就是一个保存值的一个占位符而已。定义变量时,还要用var声明,后跟变量名。如

var message

这行代码定义了名为message的变量,该变量可以用来保存变量值(像这样未初始化的变量,会保存一个特殊的值undefined)

<!Doctype html>
<html>
<head>
<title>变量</title>
<meta charset="utf-8" />
</head>
<body>
   <script>
     var message;
     alert(message);
   </script>
</div>
</body>
</html>

使用var操作符定义一个变量将成为定义该变量的作用域中的局部变量。也就是说,如果在函数中用var 定义一个变量,那么这个变量在函数退出后将会销毁。

<!Doctype html>
<html>
<head>
<title>变量</title>
<meta charset="utf-8" />
</head>
<body>
   <script>
    function test(){
      var message;
      alert(message);//弹出undefined
    }
    test();
      alert(message);//报错
   </script>
</div>
</body>
</html>

变量message是在函数中用var定义的,当函数被调用时,并创建该变量并为其赋值。而在此之后,变量又会被立即销毁。因此上面例子中的下一行代码会报错。不过声明变量时可以省略var,从而变成全局变量就不会报错。这样只要函数一调用,这个变量就有了定义,就可以在函数外部的任何地方调用。

<!Doctype html>
<html>
<head>
<title>变量</title>
<meta charset="utf-8" />
</head>
<body>
   <script>
    function test(){
       message = hi;
      alert(message);
    }
    test(); //hi
      alert(message);//hi
   </script>
</div>
</body>
</html>

 

定义多个变量时,可以用逗号隔开

<!Doctype html>
<html>
<head>
<title>变量</title>
<meta charset="utf-8" />
</head>
<body>
   <script>

    function test(){
        var message =hi,
        found = false,
        age=29;
      alert(message);
      alert(age); 
    }
    test(); //hi

 
   </script>
</div>
</body>
</html>

ECMAscript中有5种基本类型:undefined、null、boolean、number、string还有一种复杂数据类型就是object,object本质上是由一组无序的名值对组成的。而ECMAscript不支持创建自定义类型的机制,而所有值都是上述这6种数据类型之一。

 

typeof 操作符

鉴于ECMAscript是松散类型的,因此需要有一种手段来检测给定变量的数据类型。typeof 就是负责提供这方面信息的操作符。对一个值使用typeof操作符可能返回下面某个字符串

undefined 如果这个值未定义

boolean 如果这个值是布尔值

string 如果这个值是字符串

number 如果这个值是数字类型

object 如果这个值是对象或null

function 如果这个值是函数

<!Doctype html>
<html>
<head>
<title>变量</title>
<meta charset="utf-8" />
</head>
<body>
   <script>
    
     var message ="some thing";
     alert(typeof message);
     alert(typeof (message));
     alert(typeof 95);

 
   </script>
</div>
</body>
</html>

 

上面的几个例子可以说明,typeof操作符的操作数可以是变量,也可以是数值字面量。注意,typeof是一个操作符而不是函数,因此例子中的圆括号,尽管可以使用,但是不是必须的。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。