JavaScript语法学习1--弱类型变量

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 语句是运行缓慢的代码块,尤其是在已设置了属性值时。大多数情况下,如果可能,最好避免使用它。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值