继续记笔记,JavaScript越来越有意思了。

  继续。。。

      第三章:JavaScript基础

  1. ECMAScript语法在很大程度上借鉴了C和其它类似于C的语言,比如Java和Perl。
  2. 大小写敏感;变量、函数名、操作符都是大小写敏感的,比如“text”和“Text”不同。
  3. 标识符:
    1. 第一个字符必须是字母、下划线或者美元符号($);
    2. 之后的字符可以是字母、下划线、美元符号或者数字。

  标识符中的字母可以是ASCII和Unicode字母比如À and Æ,但是不推荐这样使用。

  按照惯例,ECMAScript是采用驼峰命名方式的,如下:

  firstSecond

  myCar

  doSomethingImportant

  但是这个惯例不是强制性的。

  4.注释:

  ECMAScript采用C风格的注释:

  单行://….

  多行:/*

  *这是注释内容

   */

  需要注意的是,上面多行的注释中,中间的星号并不是必须的,只是为了比较好的可读性。这种格式是企业级应用偏好使用的。

  5.严格模式: Strict Mode: 严格模式的一大目标是让你能更快更方便的调试。详细的解释键MSDN: http://msdn.microsoft.com/en-  us/library/ie/br230269(v=vs.94).aspx

  6.js的表达式以分号结尾,但是这个分号不是必须的,只是建议用分号结尾。

  7.关键字:

  

  保留字:

  

  8.变量:

  变量的赋值,像这样的赋值在ECMAScript中是可以的:

  var msg=”zhangzhenqiang”;

  msg=1024;

  但是不推荐这样使用。

  如果一个局部变量没有使用‘var’声明,那么这个变量可以作为全局变量来使用,如下:

  function test(){

  message=”hi”;//global variable

  }

  test();

  alert(message);//”hi”

  只是这种使用也是不推荐的,在严格模式下,这样的使用方法是会抛出”ReferenceError”异常的。

  可以像下面这种方式声明变量:

  var message=”hi”,

found=false,

age=29;

  这里的分行不是必须的,但是这样的可读性更好。

  9.数据类型:

  在ECMAScript中,有6个数据类型(也叫原始类型):Undefined,Null,Boolean,Number,String,还有一个复杂的数据类型:Object。

  10.Typeof操作符:

    a)   “undefined”:变量的值没有定义

    b)    “boolean”:变量的值是Boolean

    c)   “string”: 变量的值是字符串

    d)   “number”: 变量的值是个数字

    e)   “object”: 变量的值是object(除了函数)或者是null

    f)   “function”:变量是个函数。

   需要注意的是typeof是一个操作符,所以圆括号不是必须的,但是可以使用。

   null的typeof是一个值为空的object。

   11.undefined

      一个声明但是没有被初始化的变量就是一个undefined。

    一个变量的值是undefined的和一个没有声明的变量是不一样的,这两个变量并不相等。

    对于一个声明了但是没有初始化的变量,和一个没有声明的变量使用typeof操作符,返回值都是undefined,所以,最好在声明一个变量的时候就初始化这个值,这样当你    对这个变量使用typeof操作符的时候如果返回undefined就知道这个变量是没有声明的,而不是没有被初始化。

  12.空值类型(null)

  空值类型是第二个只有一个值,特殊的null,的数据类型。逻辑上来说,null是一个空对象指针,这也就是为什么下面的例子中的typeof的值是object:

  var zhang=null;

alert(typeof zhang);//”object”

如果定义一个将来赋值是一个对象的变量,那么最好给这个变量初始化为null,而不是其它值。那样的话,在后来的操作中你就可以使用null值来精确的判断这个变量是否已经被赋了一个对象的引用,比如下面的例子:

if(zhang!=null){
    //do something with zhang

}

undefined是由null衍生出来的,所以ECMA-262定义了undefined和null在表面上是相等的,也就是说null==undefied=true。

  13.Boolean:

布尔类型和数字类型是不相同的,所以说true不等于1,同样的false不等于0。

需要特别注意的是,true和value是大小写敏感的,就是说和True、False(或者其它夹杂这大小写的形式)是不同的。

尽管在ECMAScript中布尔类型的值只有两个,但是所有类型的数据都可以转换成布尔值,可以用Boolean()转换,下图是所有数据类型转换成Bloolean的转换表:

其中’n/a’是not applicable(不使用)的意思。

明白这个道理是很重要的,比如在流式控制中,这些转换会自动完成,而不需要使用Boolean方法:

var msg=”zhang”;

if(msg){

alert(msg);

}

  未完待续。。。

JavaScript高级编程学习笔记(第三章之一)的更多相关文章

  1. JavaScript高级程序设计学习笔记第三章--基本概念

    一.标识符: 1.区分大小写 2.命名规则: 第一个字符必须是一个字母.下划线(_)或一个美元符号($) 其他字符可以是字母.下划线.美元符号或数字 标识符中的字母也可以包含扩展的 ASCII 或 U ...

  2. javascript dom编程艺术笔记第三章:DOM操作的5个基本方法

    JavaScript的 DOM操作,主要是对DOM这三个字母中D.O.M的操作.D代表的是document(文档),即我们可以使用javascript对文档进行操作,O代表的是object(对象),对 ...

  3. Javascript高级编程学习笔记(96)—— WebGL(2) 类型化视图

    类型化视图 类型化视图一般也被认为是一种类型化数组. 因为其元素必须是某种特定的数据类型,类型化视图都继承自 Dataview Int8Array: 表示8位二补整数(即二进制补数) Uint8Arr ...

  4. Javascript高级编程学习笔记(75)—— 表单(3)表单字段

    表单字段 表单作为web应用中不可或缺的一部分,当然也是可以使用原生的 DOM 元素来访问的 除了标准的访问方式之外,每个表单都拥有一个 elements 属性,该属性保存着该表单所有 表单元素 的集 ...

  5. Javascript高级编程学习笔记(3)—— JS中的数据类型(1)

    前一段时间由于事情比较多,所以笔记耽搁了一段时间,从这一篇开始我会尽快写完这个系列. 文章中有什么不足之处,还望各位大佬指出. JS中的数据类型 上一篇中我写了有关JS引入的Script标签相关的东西 ...

  6. JavaScript高级程序设计---学习笔记(三)

    函数表达式 定义函数的方式有两种:一种是函数声明,另一种是函数表达式. 关于函数声明,它的一个重要特征就是函数声明提升,意思是在执行代码之前会先读取函数声明所以可以把函数声明放在调用它的语句后面. 而 ...

  7. Javascript高级编程学习笔记(97)—— WebGL(3) WebGL上下文(1)

    WebGL上下文 在支持WebGL的浏览器中,WebGL的名字为 "experimental-webgl",这是由于 webgl 的规范仍未制定完成 制定完成后名字就会改为简单的 ...

  8. Javascript高级编程学习笔记(49)—— DOM2和DOM3(1)DOM变化

    DOM变化 我们知道DOM有许多的版本,其中DOM0和DOM2这两个级别以对事件的纳入标准而为人所知 但是呢,这里不讲事件,在后面会有专门和事件有关的部分作为详细讲解 这里就只讲一下DOM2和DOM3 ...

  9. Javascript高级编程学习笔记(37)—— DOM(3)Element

    Element类型 除了Document类型之外,Element类型应该就是web编程中最常用的类型了 Element类型主要用于表现XML.HTML元素,提供对元素标签名.子节点以及特性的访问 特性 ...

随机推荐

  1. UVa400 Unix is

    The computer company you work for is introducing a brand new computer line and is developing a new U ...

  2. Python之抓取网页元素

    import urllib.request from bs4 import BeautifulSoup url = "http://www.wal-martchina.com/walmart ...

  3. JAVA-IO流大文件拷贝

    package com.test.io; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...

  4. 题解 【USACO 4.2.1】草地排水

    [USACO 4.2.1]草地排水 Description 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫 ...

  5. Linux通过秘钥远程连接

    1. 秘钥生成命令 ssh-keygen 执行完上述的命令就会在root目录下生成公钥跟私钥文件 /root/.ssh/.id_rsa   私钥 /root/.ssh/.id_rsa.pub   公钥 ...

  6. MD5 加密 字符串

    //获取字符串的MD5码 public string CreateMD5Hash(string input) { // Use input string to calculate MD5 hash S ...

  7. Jmeter(七)关联之JSON提取器

    如果返回的数据是JSON格式的,我们可以用JSON提取器来提取需要的字段,这样更简单一点 Variable names:保存的变量名,后面使用${Variable names}引用 JSON Path ...

  8. TypeScript----数据类型

    TypeScript 简介 TypeScript 由 Microsoft开发和维护的一种开源编程语言.它支持 JavaScript 的所有语法和语义,同时通过作为 ECMAScript 的超集来提供一 ...

  9. $\LaTeX$数学公式大全6

    $6\ Binary\ Operation/Relation\ Symbols$$\ast$ \ast$\star$ \star$\cdot$ \cdot$\circ$ \circ$\bullet$ ...

  10. ShareX的使用

    给截图设置边框 https://github.com/ShareX/ShareX/issues/2509 TaskSettings-->Image-->Effects-->image ...