JavaScript语法
每一种语言都有自己的语法规则,JS语法与Java很像,所以学习起来比较容易。JS中也一样有变量,语句,函数,数组等常见语言组成元素。
1. 变量
通过关键字var来定义,弱类型既是不用指定具体的数据类型。
相同的变量可用作不同的类型:
var x // x 为 undefined
var x = 6; // x 为数字
var x = "Bill"; // x 为字符串
声明变量类型
当您声明新变量时,可以使用关键词 "new" 来声明其类型:
var carname=new String;
var x= new Number;
var y= new Boolean;
var cars= new Array;
var person= new Object;
JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象
2.基本数据类型(原始类型):
总共有五种原始类型:Undefined、Null、Boolean、Number 和 String
对变量或值调用 typeof 运算符将返回下列值之一:
1.undefined - 如果变量是 Undefined 类型的
2.boolean - 如果变量是 Boolean 类型的
3.number - 如果变量是 Number 类型的
4.string - 如果变量是 String 类型的
5.object - 如果变量是一种引用类型或 Null 类型的
至于为什么 typeof 运算符对于 null 值会返回 "Object"。
这实际上是 JavaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了。现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>JavaScript语法学习</h2>
1.关键字 (略): var for if switch case try catch break this new ...
2.标识符(和Java一样)
3.分隔符(和Java一样)
4.注释(比Java少了一种javadoc的方式: /** */ )
5.变量---弱类型, 同一页面中的变量是共享的,跟是否在同一脚本片段无关
<script type="text/javascript">
var i=3;
i = i+5;
//alert("i="+i);
i = "abc"; //js中变量的数据类型可以通过赋值来变换
alert("i="+i);
//alert(typeof(i));
i='aa'; //js中不存在字符类型,单引号和双引号是等价的(和HTML,SQL都是一样的),都是字符串的边界符
//alert("i="+i);
i=100;
</script>
<h2>Js语言很好玩....</h2>
<script type="text/javascript">
i++;
alert("i="+i);
</script>
<script type="text/javascript">
var x; //如果一个变量声明了,但没有初始化,js会自动帮我们初始化为"undefined", 直接使用时不会报错
alert(x);//undefined
y=3;//一个变量,没有声明可以直接赋值
alert(y);//3
// alert(z);//一个变量,没有声明但直接使用时是WA(语法错误)的
// alert("aaaa");//js是解析型语言,如果上一句出错,则这一句及之后的代码就会停止解析执行
/*
js是非严谨性语言(因为浏览器有兼容性),有的非规范方式的代码也能被正常执行(例如:
如果把多行语句写在一行,中间省略分号,也能执行(现在的浏览器不执行了,以前的可以)。
对于它的非严谨性特点,我们只是了解一下,以后开发我们还是坚决采用严谨的方式,
千万不要去挑战非严谨性的极限,这很容易制造出bug的!
*/
var a=3; var b=4
alert(a+b);
</script>
※※※注意,js语言是大小写敏感的. <br/>
6.数据类型(number, boolean(有0和"非0"的概念),string,undefined, object )<br/>
1)基本数据类型:number,boolean,string,undefined
2)对象数据类型:object <br/>
<script type="text/javascript">
var x = 3;
//alert( typeof(x) ); //number
var y = 2.35;
//alert( typeof(y) ); //number= byte+short+int+long+ float + double
var boo = true;
//alert( typeof(boo) ); //boolean : 有0(false) 和 非0(true)
boo = -1;
//alert( typeof(boo) ); //number
if(boo){
//alert( "aaaaaa" );
}
var str = "abc";
//alert(typeof(str)); //string
var ch='a';
//alert(typeof(ch)); //js中没有char类型,只有string(基本数据类型)
var x;
//alert("x="+x);//x=3 ※※注意,如果一个变量在前面有值,重新声明但不赋值时,仍然共用前面的值
var xx;
//alert( typeof(xx) ); //变量若声明但没有赋值,类型是:undefined ,值也是: undefined
//alert( xx ); //undefined
//alert(yy);//WA
/*
一个变量声明但没赋值是可以的,因为js会自动初始化为undefined。
一个变量没有声明直接赋值也是可以的,因为所有类型声明时都是var。
一个变量没有声明或赋值,直接使用(读取变量值),是语法错误的(因为里面没有值)
*/
var date = new Date();
//alert( typeof(date) ); //object
var ar=[];
//alert("ar:"+ typeof(ar) ); //object
</script>
</body>
</html>
下面补充一个with关键字
with 语句用于设置代码在特定对象中的作用域。
var sMessage = "hello";
with(sMessage) {
alert(toUpperCase()); //输出 "HELLO" 相当于alert(sMessage.toUpperCase());
}
提示:
with 语句是运行缓慢的代码块,尤其是在已设置了属性值时。大多数情况下,如果可能,最好避免使用它。