javaScript三大核心:
ECMAScript::JavaScript的解释器。对各大浏览器几乎没有兼容性问题。
DOM:对HTML的节点操作。有一些操作不兼容。
BOM:暂时不太了解,希望大家多多提点。可以确定的是也没有兼容性问题,因为完全不兼容。
先来了解下JavaScript的基础的两大定律,当然不是官方的了。
一、HTML上所具备的属性,JS都能够操作(class除外,因为是个关键字所以是classname)
二、HTML上不具备的属性,JS有的话一定不兼容浏览器。一般通过if判断是否为 undefined来解决。
对于第一的定律可以这么说:input的type有button,text等属性值。那么js就可以把type任意修改为 button,text,password等。
对于第二个:比如:获取html上元素的css属性。我们可以通过判断currentStyle是否为真假,来处理浏览器兼容的问题,还是来段小代码吧
function getStyle(obj, name)
{
if(obj.currentStyle)
{
return obj.currentStyle[name];
}
else
{
return getComputedStyle(obj, false)[name];
}
}
window.οnlοad=function ()
{
var oDiv=document.getElementById('div1');
alert(getStyle(oDiv, 'backgroundColor'));
};
JavaScript的基本类型:
提到这件事情就伤心了,被师父问道有什么数据类型的时候,就一脸懵逼了,想到的就是 string,int,float。突然觉得世界好大,自己在哪啊。
基本类型包括: undefined,boolean,number,string,function,object
一般在JavaScript存在隐式转换,所以看不懂变量是什么类型的话,就请教下 typeof吧。它能告诉你答案。 typeof 变量名
刚开始的时候,12+5=125,我自己都奇怪了。想到了一个原因,input里的东西全部是string类型啊。于是乎parseInt,parseFloat应运而生。
有了这两个小玩意,就不必担心妈妈说你12+5也算不对了。
对于booolean也是非常有意思的。当时要解决一段业务,使用了JS然后达不到想要的效果。类似于下面的代码,命名是false怎么总是报true呢。当然了很小的一个错误,包含了对JavaScript的基本类型操作不熟练。
function a(obj){
if(flag)
{
return true;
}
else{
return false;
};
}
var flag ="false";
alert(a(flag))
真:true,非0数字,非空字符,非空对象
假:false,0数字,空字符,空对象,undefined
function对象,可以把它作为一种对象的属性来操作,类似于Jquery的一些方法。把许多方法都放到$对象里。对这块理解还有所欠缺,大家多多补充。
object,说白了就是new出来的对象。或者是从html上获取到的那些元素,节点等都可以看成一个对象。例如;window,document
当然了也可以采用其他的方式来实例化一个对象。
接下来就是常用到的数组和JSON,他们两个都是特别的像。除了写法有所区别外
另一个就是json没有长度length这么个属性,那么它是怎么实现循环呢?很简单——>for in 循环
var json={a: 12, b: 5, c: 7};
var arr=[12, 5, 7];
for(var i in json)
{
alert('第'+i+'个东西:'+json[i]);
}
JSON这种轻量级数据格式,十分适合于Web端。方便解析,传送和接受。
下篇看一个json的实例(.NET平台C#)