javascript<一>

构成JavaScript完整实现的各个部分:
JavaScript的核心ECMAScript描述了该语言的语法和基本对象
DOM描述了处理网页内容的方法和接口
BOM描述了与浏览器进行交互的方法和接口。
ECMAScript基础
语法:区分大小写,弱类型,每行结尾的分号可有可无,注释与C相同。

var test="hi";
var age=25;

变量可以存放不同类型的值

var test="hi";
alert(test);
test=55;
alert(test);

ECMAScript有5种原始类型,即:undefined,null,boolean,number,string
并提供了typeof运算符来判断某一个变量属于哪一个类型。

var iNum=10;
alert(iNum.toString(2));//二进制字符串  
alert(iNum.toString(8));//八进制字符串  
alert(iNum.toString(16));//十六进制字符串

2.转换成数字

var iNum1=parseInt("1234adf");//1234
var iNum2=parseInt("0xA");//return 10;
var iNum1=parseInt("AF",16);//解析十六进制的值
另外还有函数parsefloat("1234.lll");

3.强制类型转换

Boolean,Number,String
var s1=string(null);
var n2=Number("56");

4.引用类型

var o=new Object();
Number类
var oNumberObject=new Number(55);
var iNumber=oNumberObject.valueOf();
String类
<script type="text/javascript">
//创建一个String对象
var oStringObject=new String("hello world");
//string对象的valueOf和toString方法都返回String型的原始值
alert(oStringObject.valueOf()==oStringObject.toString());
//length属性
alert(oStringObject.length);
//charAt()得到单个字符,charCodeAt()得到单个字符的代码
alert(oStringObject.charAt(1));
alert(oStringObject.charCodeAt(1));
//concat()用于把一个或多个字符串连接到string对象原始值上,保持原始的string对象不变.
var s1="hello";
var s2=s1.concat(" world");
alert(s2); //hello world
alert(s1); //hello
var s3=s1+" world!!"; //也可以用+号连接字符串
alert(s3); //hello world!!
//indexOf()与lastIndexOf()返回指定子串在另一个字符串中的位置
alert(oStringObject.indexOf(o));//从字符串的开始检索
alert(oStringObject.lastIndexOf(o));//从字符串的结尾检索
//localCompare()按照字母顺序比较
s1=new String("yellow");
alert(s1.localCompare("brick"));//1
alert(s1.localCompare("yellow"));//0
alert(s1.localcomparre("zoo"));//-1
//slice()与substring()都返回字符串中的子串,第一个参数为起始位置,第二个参数为终止位置。
alert(oStringObject.slice(3));//lo world
alert(oStringObject.slice(3,7));//lo w
alert(oStringObject.substring(3));//lo world
alert(oStringObject.substring(3,7));//lo w
//对于负数参数,slice()会用字符串的长度加上参数,substring()则将其作为0处理
alert(oStringObject.slice(-3));//rld
alert(oStringObject.substring(-3));//hello world
//toLowerCase(),toLocalLowerCase(),toUpperCase(),toLocalUpperCase()大小写转换
//instanceof运算符
alert(oStringObject instanceof string);//oStringObject是否为string类型的实例
///////////////////////////
//delete运算符
var o=new Object();
o.name="nicholas";
alert(o.name);
delete o.name;//删除对以前定义的对象属性或方法引用
alert(o.name);
////////////////////////////////////////////////////
//void运算符
<html>
<head>
<script type="text/javascript">

</script>
</head>
<body>
//当点击后将会在屏幕上出现object window字样
<a href="javascript:window.open('about:blank')">click me</a>
//void运算符对任何值都返回undefined.避免输出不应该输出的值
<a href="javascript:void(window.open('about:blank'))">click me</a>
</body>
</html>
/////////////////////////////////////////////////////
//函数
function sayhi(name,message){
alert("hello"+name+","+message);
}
sayhi("che","ni hao");
//如何函数没有明确的返回值,则它真正的返回的值是undefined
//函数不能重载,
//arguments对象,无需明确指出参数名就能访问他们
function sayHi(){
if(arguments[0]=="bye")
document.write("bye");
document.write(arguments.length+"");
}
sayHi("bye",1,1,1,1);
//arguments对象还可检测传递给函数的参数个数,如上所示

</script>
对象基础-----------------------------------
1.本地对象:Object,Array,String,Number,Date,RegExp,Function
2.Array方法:join(),split(),slice(),push(),pop(),shift(),unshift(),sort(),reverse()
join("连接符")将数组转换成字符串输出,split()将字符串转换成数组
shift()将删除数组的第一个项,将其作为函数值返回。unshift()把一个项放在数组的第一个位置,然后把其它的向后移动
slice()方法返回具有特定项的新数组,接受一个或两个参数,即要提取的项的起始位置和结束位置。
3.Date()
<script type="text/javascript">
//创建Date对象
var d=new Date();
var d=new Date(0);
var d=new Date(Date.parse("May 25,2004"));
var d=new Date(Date.UTC(2004,1,5));
var d=new Date();
alert(d.toDateString());
alert(d.toTimeString());
//////////////////////////////////////////////
//内置对象
//只定义了两个内置对象,即Global,Math
//Global对象,isNaN(),isFinite(),parseInt(),parseFloat(),
//encodeURI()用于处理完整的URI,encodeURIComponent()用于处理URI的一个片断
var sUri="http://www.baidu.cn/illegal value.htm#start";
alert(encodeURI(sUri));
alert(encodeURIComponent(sUri));
//decodeURI()与decodeURIComponent()恰与对应的上面的方法相反
//最后一个方法是最强大的方法eval()
//该方法就像是整个ECMAScript的解释程序,接受一个参数,即要执行的JavaScript字符串
eval("alert('hi')");//alert("hi");
eval("function sayHi(){alert('ddd');}");
sayHi();
//这种功能极其强大,也极其危险,恶意用户可能会插入对站点有安全的代码即代码注入
//Global的属性:undefined,NaN,
//Math对象,random()方法
var iNum=Math.floor(Math.random()*10+1);
//ECMAScript中的所有对象的所有属性和方法都是公用的。所有属性和方法默认都是公用的。
//函数是对象,对象可以有属性和方法
function sayHi(){
alert("hi");
}
sayHi().alternate=function(){
alert("hola");
};
sayHi();
sayHi.alternate();
//关键词this
function showColor(){
alert(this.color);
}
var car1=new Object;
car1.color="red";
car1.showColor=showColor;
var car2=new Object;
car2.color="blue";
car2.showColor=showColor;
car1.showColor();
car2.showColor();
//定义对象和类
//工厂方式 
function showColor(){
alert("this.color");
}
function createCar(sColor,iDoors,iMpg){
var oTempCar=new Object;
oTempCar.color=sColor;
oTempCar.doors=iDoors;
oTempCar.msg=iMsg;
oTempCar.showColor=showColor;
return oTempCar;
}
var oCar1=createCar("red",4,23); //一个对象
var oCar2=createCar("blue",3,25); //另一个对象
//混合的构造方式/原型方法
//用构造方法定义对象的所有非函数属性,用原型方法定义对象的函数属性。
function Car(sColor,iDoors,iMpg){
this.color=sColor;
this.doors=iDoors;
this.mpg=iMpg;
this.drivers=new Array("Mike","Sue");
}
Car.prototype.showColor=function(){
alert(this.color);
}
var car1=new Car("red",4,23);
var car2=new Car("blue",4,23);
//给对象创建新的方法
//可以使用prototype属性为任何已有的类定义新方法
Number.prototype.toHexString=function(){
return this.toString(16);
}
//重定义已经存在的方法
Function.prototype.originalToString=Function.prototype.toString;
Function.prototype.toString=function(){
if(this.originalToString().length>100)
return "function too long to display.";
else
return this.originalToString();
}


//////////////////////////////////////////////////////////////
//继承,暂时不学它。


</script>
//第五章,浏览器中的JavaScript
<script language="JavaScript" src="external.js"></script>
<script type="text/javascript">
//大量的javascrip代码不应该内嵌在HTML文件中,因为:安全性,代码维护,缓存


</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容