zoukankan      html  css  js  c++  java
  • javascrpt基础入门

    JavaScript 是一门脚本语言,同HTML语言一样,需要浏览器或者JavaScript解释器,解释执行。

    1. 第一个JavaScript程序:

    <html>

        <body>

            <script type="text/javascript">

                document.write("Hello World!")

            </script>

        </body>

    </html>

    <script>,</script>是一对HTML标签,用于在HTML文档中引入JavaScript,这里type属性,指定了语言为JavaScript。这是写JavaScript的一种方式。

    做一个简单的讲解:

    1) JavaScript语句后不一定要接分号,比如:

    document.write("Hello World"),也可以加分号,这符合大多数程序员的习惯,不过如果一行有多个语句的时候,一定要加分号。也就是JavaScript可以通过行和分号来区分不同的语句。

    2) 面向对象(有些书籍认为JavaScript是基于对象的)

    可以通过 object.method() 来调用某对象的方法。上面的document就是一个对象,他有一个write方法,用于输出字符到HTML文档上,注意,我们不能通过document.write(" ")来在HTML文档中产生一个换行,而需要document.write("<br />")。document.wirte() 是很有用的,比如我们可以使用它来动态生成一个表格。

    2. <script>标签的位置,我们知道每一个HTML标签都会有一个和一些对应的放置位置。<script>也是。

    1) <script>放置在<head></head>间,页面载入的时候不会被运行,但是可以被调用。运行将从调用开始处运行,到</script>标签结束。

    2) <script>放置在<body></body>间,页面载入的时候被运行。

    3) <script>放置在<head></head>外,页面载入的时候被运行,但是通常我们不把<script>标签写在其他不应该写的地方,虽然,主流的浏览器都支持这样的做法。

    3. 访问外部脚本

    另外一种写JavaScript的方式,就是把JavaScript代码保存在一个文本文件中,然后用<script>标签导入。比如:

    <script src="xxx.js">

    </script>

    表示,我们现在有一个xxx.js的文件,里面保存的是JavaScript代码,通过这样的方式可以导入xxx.js文件中的JavaScript代码。

    现在开始介绍JavaScript:

    1) 变量

    JavaScript是大小写敏感的。所以变量是区分大小写的,这个和HTML语言不一样,另外和java一样,JavaScript变量名字要使用字母或者是下划线开头。我们进行程序设计的时候,无须指定变量类型,申明变量用关键字 var,比如:

    var str

    str = "hello"

    或者这样定义

    var str = "hello"

    甚至可以: str = "hello" 来直接定义一个变量。

    2) 变量的作用域

    变量的作用域从变量的声明或者定义开始,到本个块结构结束为止,比如

    { var hi

    ..

    }

    // 这里hi变量被销毁。

    因此,我们可以在所有的块之外定义全局变量。

    3) 常量

    十六进制数: 0x11(0x开头的数)

    十进制数:11(正常书写方式)

    八进制数:011(0开头的数)

    true : 表示真

    false : 表示假

    null :表示一个变量没有指向任何对象

    undefined :表示方法没有返回值,或者变量没有被声明或定义

    NaN :表示不是一个数字

    4) 控制语句(大多同于java)

    a. if ... elseif (condition1)

    语法:

    if (condition1)

    {

    code to be executed if condition1 is true

    }

    else if (condition2)

    {

    code to be executed if condition2 is true

    }

    else

    {

    code to be executed if condition1 and

    condition2 are not true

    }

    b. switch

    switch(n)

    {

    case 1:

        execute code block 1

        break

    case 2:

        execute code block 2

        break

    default:

        code to be executed if n is

        different from case 1 and 2

    }

    5) 运算符(本图表源于 http://www.w3schools.com/js/js_operators.asp)

    Arithmetic Operators

    Operator Description Example Result

    + Addition x=2

    y=2

    x+y 4

    - Subtraction x=5

    y=2

    x-y 3

    * Multiplication x=5

    y=4

    x*y 20

    / Division 15/5

    5/2 3

    2.5

    % Modulus (division remainder) 5%2

    10%8

    10%2 1

    2

    0

    ++ Increment x=5

    x++ x=6

    -- Decrement x=5

    x-- x=4

    Assignment Operators

    Operator Example Is The Same As

    = x=y x=y

    += x+=y x=x+y

    -= x-=y x=x-y

    *= x*=y x=x*y

    /= x/=y x=x/y

    %= x%=y x=x%y

    Comparison Operators

    Operator Description Example

    == is equal to 5==8 returns false

    === is equal to (checks for both value and type) x=5

    y="5"

    x==y returns true

    x===y returns false

    != is not equal 5!=8 returns true

    > is greater than 5>8 returns false

    < is less than 5<8 returns true

    >= is greater than or equal to 5>=8 returns false

    <= is less than or equal to 5<=8 returns true

    Logical Operators

    Operator Description Example

    && and x=6

    y=3

    (x < 10 && y > 1) returns true

    || or x=6

    y=3

    (x==5 || y==5) returns false

    ! not x=6

    y=3

    !(x==y) returns true

    *字符串时候相等,用"==="或者"=="都可以,这不同于其他的语言。

    注意,不要小看上面的运算符号,他们关系极其复杂,比如:

    a = "1"

    a -= 1

    alert(a);  // 结果是0

    但是 a= "1"

    a += 1

    alert(a); // 结果是11

    再比如:

    a = true

    a -= 1

    alert(a) // 结果是0

    另外还有:

    "1" != 1 // 结果是false

    为了搞清这错综复杂的关系,必须先了解一个东西:JavaScript中任何类型之间都可以相互转换。显示的使用:

    a) Number()  // 转化成为数,这里的数包括整数和浮点数

    b) Boolean() // 转化成为boolean值

    c) String() // 转化成为字符串

    d) Object() // 转化成为

    这3个方法,可以接受任意类型的参数,甚至是一个对象。上面的"1" + 1的操作,实际上进行的类型的隐式转换,跟详细的说就是,隐式的使用了Number(),Boolean(),String(),Object()来进行类型的转化。

    这里对转化做一个总结:

    转化前 转化后

    非0 true

    0 false

    true 1

    false 0

    "123"或"123.2"这类的字符串 123或123.2这类的数字

    123或123.2这类的数字 "123"或"123.2"这类的字符串

    true "true"

    false "false"

    如何非空字符串 true

    "" false

    null false

    NaN false

    undefined false     

    非空对象 true     

    转化是一个问题,当使用运算符还有一个问题就是向谁转化的问题,比如:

    "false" == false

    假如这里是隐式的把"false"字符串转化成为boolean类型,那么就是 true == false 结果为 false;假如这里是隐式的把 false转化成为字符串 "false" 这里就是 "false"=="false",结果为 true。因此如何转化是个问题。我们先看看下面的例子:

    alert(false=="false");  // 结果为false,也就是把字符串转化成了boolean值

    a = false + "1";

    alert(a); // 结果为"false1",也就是把boolean值转化成为了字符串

    这是一个头痛的问题,因为他们转化尽然没有统一的标准,而会因为不同的运算符号而不同!

    有一种办法就是,尽量避免运算符号的隐式转换,每次使用前,用String(),Number(),Boolean()进行转化,尽量使得运算符两边类型一样。因此,我们必须熟悉上表中各个类型的转化规则。

    6) 对象到基本类型的转化

    在讲到对象之前,就开始这个话题,显然有些不明智,读者可以先了解JavaScript对象之后,再来了解这个问题。

    前面一个表格的最后一行:非空对象转化成为true,也就是说明了,对象到boolean类型的转化过程,这是比较简单的。

    a) 对象到数字

    调用对象的valueOf()方法,假如没有得到数字,就调用对象的toString()方法,然后传递给Number()。

    b) 对象到字符串

    调用对象的toString()方法。

    1) 循环语句:

    a) for

    for (var=startvalue;var<=endvalue;var=var+increment)

    {

        code to be executed

    }

    for有另外一个用法,先看一个例子:

    for(var cur in window){

        document.write(cur+"<br />");

    }

    运行一下就可以看到效果了,那这个是什么意思?就是列出对象window里面的所有属性(properties),更加详细的定义是:

    for in 语句可以迭代一个对象的所有属性名或者一个数组中的所有元素(得到数组的下标)。

    b) while

    while (var<=endvalue)

    {

        code to be executed

    }

    c) do ... while

    do

    {

        code to be executed

    }

    while (var<=endvalue)

    2) JavaScript中的方法:

    function functionname(var1,var2,...,varX)

    {

    some code

    }

    使用关键字 function 定义一个方法。使用 return 返回一个值。例如:

    function f(n){

        if(n <= 1)

            return 1;

        return f(n-1)*n;

    }

    调用方法,使用方法名和参数进行调用,比如 f(10)

    参数列表是很有趣的,我们看一个方法:

    function maxNum(){

        max = arguments[0];

        for(i=1;i<arguments.length;i++){

            if(max < arguments[i])

                max = arguments[i]

        }

        return max

    }

    document.write(maxNum(4,3,5))

    结果输出了5。这说明了,方法可以接受超过参数列表中参数数量的参数。使用arguments.length得到实际输入的参数的数量,使用arguments[i]得到第i个参数。

    3) 常用的方法:

    alert("hi");  // 对话框

    eval("...");  // 把参数当作JavaScript代码来运行。

    parseInt("123"); // 把参数转化成为整数

    parseFloat("123.123") //  把参数转化成为浮点数

    例如:

    eval("alert('hi')");

    eval("(1+3)*4");  // 注意 (1+3)*4 也是JavaScript代码。

    这里parseInt和parseFloat可以解析"abc123"这类的字符串,但是使用Number()无法解析含有非数字字符的字符串,比如:

    parseInt("abc123"); // 得到123

    Number("abc123"); // 得到NaN

    现在你可以进入更深的层次学习JavaScript了。

  • 相关阅读:
    java经典面试题
    用OpenSSL把二进制的Cer证书转换程Base64格式的PEM格式的证书
    JVM中java实例对象在内存中的布局
    高级加密标准(英语:Advanced Encryption Standard,缩写:AES)
    中断和中断处理程序
    CS 寄存器 和 IP 寄存器
    Gson通过借助TypeToken获取泛型参数的类型的方法
    Tomcat 的 JDBC 连接池
    Google Guava官方教程(中文版)
    阿里DRUID数据源
  • 原文地址:https://www.cnblogs.com/zhangshiwen/p/4115922.html
Copyright © 2011-2022 走看看