美文网首页
javascript<一>

javascript<一>

作者: 200813 | 来源:发表于2017-02-27 02:09 被阅读0次

    构成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>
    

    相关文章

      网友评论

          本文标题:javascript<一>

          本文链接:https://www.haomeiwen.com/subject/htnawttx.html