JavaScript(2)变量类型和语法

1、js基础对象:
window//窗口对象
document//文档对象
document.documentElement//html对象
document.body//body对象
document.head//head对象
2、js工作原理
获取一个标签
将标签转换成一个c元素对象对他进行操作(获取该标签的所有属性并进行赋值)

3、

<body >
	<img id="imgid" src="sh.png" width="50px" height="100px" >
</body>
<script>
	var imgobj=document.getElementById("imgid");

	imgobj.src="gx.png";
	imgobj.width=100;
	imgobj.height=100;
	imgobj.onclick=function(){
	imgobj.src="sh.png"
	}
</script>

js在赋值的时候只能赋数字,不能带单位。
将标签转化为对象后能改样式,加事件

3、js特效:js操作标签的样式和事件组合到一起
4、js变量类型(10种):
(1)字符串
(2)整型
(3)浮点型
(4)布尔类型
(5)数组
定义方法 1 var arr=new Array(1,2,3);
2 var arr=new Array();
arr[0]="a";
arr[1]="b";
arr[2]="c";
3 var arr=[1,2,3];
4 var arr=[];
arr[0]="a";
arr[1]="b";
arr[2]="c";
(6)对象:
第一种定义对象的方法:
window.document.documentElement
第二种定义对象的方法:
var obj=new Object();
alert(obj);
第三种定义对象的方法:(json对象)
var obj={"name":"user1","age":"30"};
alert(obj.name);
(7)NULL(空)
(8)NAN(非数字not a number)
var num="10abc";
alert(Number(num));弹出一个NaN类型值//Number()强制类型转换,转换为一个数字
(9)undefined 直接写alert(obj);未定义obj

5、Global对象真实存在,但是不能alert打印出来,可以直接调用他的方法,前面不用加对象名。Global对象之下的方法:
escape()/eval()/isFinite()/isNaN()/parseFloat()/parseInt()
调用eg:    var num="10px";
alert(parseInt(num));//将10px通过强制类型转换为INT类型10
6、 有两个对象我们使用的时候不需要写对象名,只需要写方法就可以
window对象(浏览器级别的对象)
Global对象(js本身超级全局的对象)
eg:
var num="10px";
alert(typeof(num));//弹出string,用于测试变量类型
7、js之中数组也是通过new一个对象而来,数组也是一个对象
eg:
var num=[];
alert(typeof(num));//返回object
8、js对象分为两大类:
(1)浏览器相关底层对象:window document
(2)js里面语言本身:标签相关,自定义对象
ActiveXObject对象,Array对象,Boolean对象,Error对象,Global对象,Math对象,Math对象,Number对象。。。。
9、测试变量类型:
typeof();//typeof是Global对象中的方法,使用时不用写Global
10、顶级全局方法:
Global对象中的:escape()/eval()/isFinite()/isNaN()/parseFloat()parseInt()
其他:String()/Number()/Array()/Object()/Boolean()强制类型转换使用以上方法
var obj=10;
alert(String(obj)+3);//打印弹出103,且为字符串形式
全局方法还有:
encodeURIComponment()/decodeURIComponent()

11、eval()方法在PHP的用途:(将一个字符串表达式转换为一个表达式执行)

<?php
$str='$a=1+1;';
eval($str);
echo $a;
?>

js里面和PHP一样

var str='num=10+5';
eval(str);
alert(num);//弹出15

另外:

var str='var obj={"name":"user1"}';
eval(str);
alert(obj.name);//弹出user1

再者:

var str='({"name":"user1"})';
alert(eval(str).name);

/*直接使用{"name":"user1"}不是一个json对象,会报错,但是用()包括起来不会报错,
就可以使用()包裹起来,不用再将字符串表达式转换成表达式的时候引入第二个变量obj了*/

这样就可以把json字符串转换成json对象,供js使用

var str='{"name":"user1"}';
var obj=eval("("+str+")");
alert(obj.name);//通常PHP后台数据交给前台是一个json字符串,此时就可以用得到

 

12、Boolean()全局方法使用:(转成布尔类型之后那些为假)
NaN
undefined
null
0
false
""
转布尔类型的两种方法:var num=1
(1)Boolean(num)
(2)!!num
另外,在js中if判断中可以自己转换bool也可以不转换就当做判断条件

var num=0;
if(num){
	alert(true);
}else{
	alert(false);
}//结果打印弹出false,说明if括号中判断条件已经自己转换了

 

13、变量运算符:
(1)+运算符:字符串连接符
(2)new创建对象时使用
(3)this本对象
(4)in 检查某一属性是否是该对象里面的
(5)instanceof检查某个对象是够是由某个构造函数产生的
(6)delete不能删除var定义的变量,其他都可以用delete删除

feihu分享到:

          

You may also like...

Scroll Up