zoukankan      html  css  js  c++  java
  • Javascript基础编程の变量、对象、数据类型及函数

        在web标准中,网页由结构、表现形式和行为三个部分组成。

        结构标准---->XHTML;

        表现形式标准----->CSS;

        行为标准----->javascript;

        javascript是一种专门设计用来给网页增加交互性的编程语言,最初由Netscape公司开发,最后提交给了欧洲计算机制造商协会(ECMA)。

       一、javascript特点:

        1、javascript是一门解释型语言,这意味着javascript代码不需要预先编译就可以执行。

        2、javascript不能脱离浏览器独立运行

        3、javascript不允许读写用户的文件(cookie除外),采用同源策略,只允许来自相同域的交互。

        二、javascript能做什么

        1、给程序员一种全面控制HTML网页中所有元素的能力;

        2、可以在HTML网页中放入动态文本;

        3、响应用户在使用网页中产生的事件

        4、校验用于输入的数据

        5、检测访问者的浏览器

        6、创建cookie

        三、javascript添加到XHTML网页中的方式

        1、内嵌

        2、外联

        3、事件引入

        事件引入,简单示例:

    <!doctype html>
    <html lang="en">
     <head>
      <meta charset="UTF-8">
      <meta name="Generator" content="EditPlus®">
      <meta name="Author" content="">
      <meta name="Keywords" content="">
      <meta name="Description" content="">
      <title>Document</title>
     </head>
     <body>
      <form action="#" method="get">
        <input type="button" value="press me" onclick="alert('hello world');"/>
      </form>
     </body>
    </html>

        四、变量

        javascript是弱类型的,定义变量时无需明确的数据类型声明,而且变量并一定要初始化

    var test1 = 'hi',test2='hi';
    var sex = 'male',age=12;
    var test;

        五、数据类型

        分数字型和非数字型

        非数字型:undefined、null、NaN、boolean、string

        数字型:number

        1、类型特征:

        (1)、undefined不是报错,它也是一种类型,并且这种类型的值就是undefined,如

    var temp;

        temp的类型为undefined,值也为undefined;

        (2)、当变量未声明后者函数无返回值的时候,都会体现为undefined;

        (3)、使用一个未声明的变量将会报错;  

        (4)、typeof不区分未赋值的变量和未声明的变量;

    var temp1;
    alert(typeof temp1);//undefined
    alert(typeof temp2);//undefined
    alert(temp2==undefined);//报错

        (5)、undefined是由null派生出来,因此javascript把它们定义为相等;

    alert(null==undefined);//true

        (6)、NaN不能用于算术计算,并且它与自身不相等
         2、数据类型转换

        javascript中一切数据其实都是一个伪对象,这意味着实际上它们具有属性和方法。

       (1)、将boolean值、数字值转换为字符串最简单的方法toString()。

    var bFound = false;
    alert(bFound.toString());//'false'
    var iNum = 10;
    var gNum = 10.0;
    alert(iNum.toString());//'10'
    alert(gNum.toString());//'10'

        (2)对于非数字的原始值,javascript提供了parseInt()和parseFloat()方法转换为数字的方法。

          只有对包含数字的string类型调用这些方法,它们才能正确运行;对其他类型或纯字符类型返回的都是NaN。

    parseInt('1234blue');//1234
    parseInt('0xA');//10
    parseInt('22.5');//22
    parseInt('blue');//NaN
    parseFloat('1234blue');//1234.0
    parseFloat('0xA');//0
    parseFloat('22.5');//22.5
    parseFloat('22.345');//22.345
    parseFloat('0908');//908
    parseFloat('blue');//NaN

        (3)强制转换

        使用强制转换可以访问特定类型的值,即使它是另一种类型的。

         Boolean(value);

         Number(value);

         String(value);

        当要转换的值是至少有一个字符的字符串、非零数字或对象时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。可以用下面的代码段测试Boolean型的强制类型转换。

    Boolean('');//false
    Boolean('hi');//true
    Boolean(100);/true
    Boolean(null);//false
    Boolean(0);//false
    Boolean(new Object());/true

        Number()的强制类型转换与parseInt()和parseFloat()方法处理方式相似,只是它转换的是整个值,而不是部分值。例如:

    parseInt('4.2.6');//4
    parseFloat('4.2.6');//4.2
    Number('4.2.6');//NaN

        因为整个字符串值不能转换为数字,所以为非数(NaN)。

        如果字符串的值能被完整的转化,Number()将判断调用parseInt()还是调用parseFloat()方法。

    Number(false);//0
    Number(true);//1
    Number(undefined);//NaN
    Number(null);//0
    Number('2.5');//2.5
    Number('56');//56
    Number('2.2.7');//NaN
    Number(new Object());//NaN
    Number(100);//100

        String()是最简单的,因为它可以把任何值转换为字符串。要执行这种强制类型转换,只需要调用作为参数传递进来的值得toString()方法。

    String(null);//'null'
    String(1);//'1'
    String(false);//'fasle'
    String(undefined);//'undefined'

        3、引用数据类型

        原生对象:由javascript提供的,独立于宿主环境的对象,简单点说,就是在ECMA-262标准中定义的对象。它包括Object、Function、Boolean、Date、Number、Error....

        内置对象:内置对象实际上也是原生对象的一种,但是与原生对象不同的是,内置对象不需要显式地初始化,因为它已经初始化了。ECMA-262只定义了两个内置对象:Globle和Math;

        宿主对象:与浏览器有关的对象。所有BOM和DOM对象都属于宿主对象。

        4、javascript类
        (1)object类

        object类具有以下属性:

        constructor-----对创建对象的函数的引用。对于Object类,该引用指向原生的object()函数;

        prototype-----对该对象的对象原型的引用。对于所有的类,它默认返回Object类的一个实例。

        Object还有以下方法:

        hasOwnProperty(property)------判断对象是否具有某个特定的属性。必须用字符串指定该属性。

        isPrototypeOf(boject)------判断该对象是否为另一个对象的原型。

        propertyIsEnumerable(property)------判断给定的属性是否可以用for...in语句进行枚举。

        toString()------返回对象的原始字符串表示。

        valueOf()------返回最适合该对象的原始值。

        (2)原始数据类型包装器类

        javascript中的Boolean、Number、String类分别是javascript原始数据类型Boolean、Number、String的包装器类。

        (3)Array类

    var colors = new Array('red','blue','yellow');
    colors[25]='black';
    alert(colors.length);//26

        其中下为3----24的值为null。

        (4)Global类

        Global类是javascript中最特别的对象,它不需要声明和初始化。

        eval()方法是javascript中最强大的方法,该方法就像整个javascript的解释程序,接受一个参数,即要执行的javascript字符串;

    eval(alert('hello'));等价于alert('hello');//hello;
    var msg = 'hello world';
    eval('alert(msg)');//msg
    eval("function go(){'say hi'}");
    go();//say hi

        (5)instanceof运算符

        在使用typeof运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回“object”。而与typeof不同,instanceof方法要求开发者明确地确认对象为某个特定的类型。

    var o = new String('hello world');
    alert(o instanceof String);//true

        六、函数

        如果函数无明确的返回值,或调用了没有参数的return语句,那么它真正返回的值是undefined。




       

  • 相关阅读:
    MySQL数据库的登陆
    Mysql 数据库的介绍
    前台后台数据的传递
    header函数
    循环结构
    流程控制
    JS与PHP数组操作的不同
    HDU 3265/POJ 3832 Posters(扫描线+线段树)(2009 Asia Ningbo Regional)
    HDU 3264/POJ 3831 Open-air shopping malls(计算几何+二分)(2009 Asia Ningbo Regional)
    HDU 3262/POJ 3829 Seat taking up is tough(模拟+搜索)(2009 Asia Ningbo Regional)
  • 原文地址:https://www.cnblogs.com/tomcatx/p/4304698.html
Copyright © 2011-2022 走看看