• Javascript基本概念(一)


    JavaScript基本语法:

    ECMAScript的语法大量借鉴了C以及其他类C语言的语法。

    ECMAScript中的一切(变量、函数名、操作符)都区分大小写。

    标识符:

    含义:指变量、函数、属性的名字,或者函数的参数。

    规则如下:

    1.          第一个字符必须是一个字母、下划线、或一个美元符号($);

    2.          其他字符可以是字母、下划线、美元符号或数字。

    按照惯例:ECMAScript标识符采用驼峰大小写格式,也就是第一个字母小写,剩余每个单词的首字母大写。

    不能将关键字、保留字true、false、null用作标示符。

    注释:

    单行://

    多行:/*  */

    严格模式:

    ECMAScript5引入了严格模式(strict mode),严格模式就是JavaScript定义了一种不同的解析与执行模式。在严格模式下,ECMAScript3中的一些不确定行为将得到处理,对于一些不安全的操作也会抛出错误。要在整个脚本中启用严格模式,可以在顶部添加如下代码:

    “use strict”;

    看起来这就像一个字符串,其实它就是一个编译指示(pragma),用于告诉支持的JavaScript引擎切换到严格模式。

    严格模式也可以用到函数内部:

    Function doSomething(){

           “use strict”;

           //函数体

    }

    严格模式下JavaScript的执行结果会有很大的不同。

    语句:

    ECMAScript中的语句以一个分号结尾;如果省略分号,则由解析器确定语句的结尾。

    关键字和保留字:

    Javascript 的保留关键字不可以用作变量、标签或者函数名。有些保留关键字是作为 Javascript 以后扩展使用。

    abstract

    arguments

    boolean

    break

    byte

    case

    catch

    char

    class*

    const

    continue

    debugger

    default

    delete

    do

    double

    else

    enum*

    eval

    export*

    extends*

    false

    final

    finally

    float

    for

    function

    goto

    if

    implements

    import*

    in

    instanceof

    int

    interface

    let

    long

    native

    new

    null

    package

    private

    protected

    public

    return

    short

    static

    super*

    switch

    synchronized

    this

    throw

    throws

    transient

    true

    try

    typeof

    var

    void

    volatile

    while

    with

    yield

       

    * 标记的关键字是 ECMAScript5 中新添加的。


    JavaScript 对象、属性和方法

    您也应该避免使用 JavaScript 内置的对象、属性和方法的名称作为 Javascript 的变量或函数名:

    Array

    Date

    eval

    function

    hasOwnProperty

    Infinity

    isFinite

    isNaN

    isPrototypeOf

    length

    Math

    NaN

    name

    Number

    Object

    prototype

    String

    toString

    undefined

    valueOf

    变量:

    ECMAScript的变量是松散类型的,就是可以用来保存任何类型的数据。每一个变量仅仅是一个用于保存值的占位符而已。

    定义变量:var 变量名; //像这种未初始化的变量会保存一个特殊的值-undefined

    用var操作符定义的变量将成为定义该变量的作用域中的局部变量。也就是说,如果在函数中使用var定义一个变量,那么在这个函数退出后就会被销毁,在函数中定义变量省去var那么该变量就变成了全局变量,不建议这样用。

    可以使用一个语句定义多个变量,逗号分开即可。

    数据类型:

    ECMAScript中有五种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number、String。还有一种复杂的数据类型---Object,它本质上是由一组无序的名值对组成。ECMAScript数据类型具有动态性,因此定义这几个类型就够了。

    Typeof操作符:

    用途:检测给定变量的数据类型。

    “undefined”->未定义

    “boolean”->布尔值

    “string”->字符串

    “number”->数值

    “object”->对象或null

    “function”->函数

    Typeof是一个操作符而不是函数。

    (从技术的角度讲,函数在ECMAScript中是对象,不是一种数据类型。然而函数也有一些特殊的属性,因此通过Typeof操作符来区分函数和其他对象是有必要的)

    Undefined

    此类型只有一个值,即特殊的undefined。在使用var声明变量但未对其进行初始化,此变量的值就是undefined。

    Null:

    它是第二个只有一个值的数据类型,这个特殊的值为null。从逻辑角度来说,null值表示一个空对象指针,这也正是Typeof检测null时返回object的原因。

    如果定义的变量准备在将来保存对象,那么最好将该变量初始化为null而不是其他值,这样只要直接检查null值就可以知道相应的变量是否已经保存了一个对象的引用。实际上undefined值是派生自null的,它们之间用相等操作符(==)总是返回true,不过这个操作符出于比较的目的会转换为其他操作数。尽管它们之间有这样的关系,但它们的用途完全不同。

    Boolean

    此类型只有两个字面值:true/false。这两个值与数字值不一回事,并且区分大小写。

    虽然它的值只有两个,但是ECMAScript中所有类型的值与这两个Boolean值等价的值。要将一个值转换为其对应的Boolean值,可以调用转型函数Boolean()。

    数据类型

    转换为true

    转换为false

    Boolean

    True

    False

    String

    任何字符串

    “”空字符串

    Number

    任何非零数值

    0和NaN

    Object

    任何对象

    Null

    Undefined

    N/A

    undefined

    Number:

    它使用IEEE754格式来表示整数和浮点数值(浮点数值在某些语言中也被称为双精度数值)。为了支持各种数值类型,ECMA-262定义了不同的数值字面量格式。

    最基本的数值字面量格式是十进制整数,除了十进制,还有八进制(第一位必须是0,然后数字序列为0~7,如果字面值中数值超出了范围,那么前导0将被忽略,后面的数子被当做十进制数值解析,在严格模式下八进制字面值是无效的,会导致JS引擎抛出错误)和十六进制(前面两位必须是0x,后跟十六进制数字0~9,A~F(或a~f))。在进行数字计算时都会转化为十进制进行计算。

    鉴于Js中保存数值的方式,可以保存正零(+0)和负零(-0)。正零和负零被认为相等。

    浮点数值:

    所谓浮点数值,就是该数值必须包含一个小数点,并且小数点后面必须至少有一位数字。

    由于保存浮点数值所需的内存空间是整数值的两倍,因此ECMAScript会不失时机地将浮点数转换为整数值。假如小数点后面没有任何数字就会最为整数值来保存。同样如果浮点数值本身表示的就是一个整数,那么该值也会被转换为整数。

    对于那些极大值或极小值的数值,可以用e(或E)表示法(即科学计数法)表示的浮点数值。浮点数值的最高精度是17位小数。(注:浮点数值计算会产生误差,这是IEEE754数值浮点计算的通病)。

    数值范围:

    由于内存的限制,ECMAScript并不能保存世界上所有的数值。最小数值保存在:Number.MIN.VALUE,该数值是5e-324;最大数值保存在:Number.MAX.VALUE,该数值是1.7976931348623157e+308。如果计算结果超过该范围则自动转换为特殊的Infinity值,若为负数则为:-Infinity(负无穷);若为正数则为:Infinity(正无穷)。

    如果某次计算返回了Infinity值,将无法进行下面的计算,因为Infinity不是能够参与计算的数值。想要确定一个数值是不是用穷的(也就是是不是位于最小和最大值之间),可以使用isFinite()函数。该函数参数位于最小和最大值之间将会返回true。

    NaN:

    NaN即非数值(Not a number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。在ECMAScript中,任何数值除以非数值会返回NaN,而不会影响其他代码的执行。(注:实际上0除以0才会返回NaN,整数除以0返回Infinitiy,负数除以0返回-Infinitiy)

    两个特点:1>任何涉及NaN的操作都会返回NaN。

                          2>NaN与任何值都不相等,包括NaN本身。

    根据以上两个特点,ECMAScript定义了isNaN()函数,该函数接受一个参数,该参数可以是任何类型,而这个函数会帮助我们确定这个参数是否不是数值。isNaN()接收到一个值后会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值。

    isNaN()也适用于对象。在基于对象调用isNaN()函数时,会首先调用函数的。

    (未完待续。。。)

  • 相关阅读:
    (转)RSS在.net下面的调用以及使用
    WEB打印的一些资料,做项目的时候用到转来(转)
    asp.net编码技巧汇集(转)也有自己的一些
    ASP.NET 中 DataGrid 导出到 Excel 的封装实现 (转)
    (转)上传与下载需要考虑的
    正则表达式之全部符号解释(转)
    开发过程遇到的无法打包问题的解决!
    传入参数,导出dbf以及删除dbf的sql 存储过程
    (转贴)MDSN关于.net连接池的讨论
    一个SessionInterPagesHelper类 (转)挺不错的想法
  • 原文地址:https://www.cnblogs.com/IamJiangXiaoKun/p/5726780.html
Copyright © 2020-2023  润新知