zoukankan      html  css  js  c++  java
  • JavaScript高级程序设计-读书笔记(1)

    第1章 JavaScript简介

    JavaScript是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成:

    l        ECMAScript:提供核心语言功能;

    l        文档对象模型(DOM):提供访问和操作网页内容的方法和接口;

    l        浏览器对象模型(BOM):提供与浏览器交互的方法与接口。

    第2章 在HTML中使用JavaScript

    把JavaScript插入到HTML页面中使用到<script>元素。

    HTML 4.01为<script>定义了下列6个属性:

    l        async:可选,表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有用。

    l        charset(很少用)

    l        defer:可选,表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有用。

    l        language(已废弃)

    l        src:可选,表示包含要执行代码的外部文件。

    l        type:可选,如果没指定这个属性,这其默认值仍为text/javascript。

    使用<script>元素的方式有两种:直接在HTML界面中嵌入JavaScript代码和包含外部的JavaScript文件。

    注意:带有scr属性的<script>元素不应该在其<script>和</script>标签之间再包含额外的JavaScript代码。

    标签位置:一般把<script>元素放在界面内容之后和结束的</body>标签之前。

    使用<noscript>元素可以指定在不支持脚本的浏览器中显示的替代内容。但在启动了脚本的情况下,浏览器不会显示<noscript>元素中的任何内容。

    第3章 基本概念

    1、语法

    与 Java 一样,变量、函数名、运算符以及其他一切东西都是区分大小写的。

    标识符需要遵守两条简单的规则(采用驼峰式大小写格式):

    • 第一个字符必须是字母、下划线(_)或美元符号($)
    • 余下的字符可以是下划线、美元符号或任何字母或数字字符

       

       2、数据类型

    ECMAScript 有 5 种基本数据类型(primitive type),即

    Undefined:表示变量还没有赋值,或赋予一个不存在的属性值

    Null:表示变量被赋予了一个空值

    Boolean:布尔值

    Number:数值

    String:字符串

    还有一种复杂数据类型Object:一组数据和功能的集合

    有3个函数可以把非数值转换为数值:Number()、parseInt()、parseFloat()。

    第4章 变量、作用域和内存问题

    1、ECMAScript变量可能包含两种不同数据类型的值:基本类型值(栈内存中的简单数据段)和引用类型值(堆内存中的内存,实际上保存的只是一个指针)。

    确定一个值是哪种基本类型的可以使用typeof操作符,而确定一个值是哪种引用类型可以使用instanceof操作符。

    2、执行环境有全局执行环境和函数执行环境之分。

       内部环境可以通过作用域链访问外部环境,但外部环境不能访问内部环境中的任何变量和函数。

       延长作用域链:当执行流进入下列任何一个语句时

               ry-catch语句的catch块;

          ith语句。

    3、JavaScript是一门具有自动垃圾收集机制的编程语言,开发人员不必关心内存分配与回收问题。

    第5章 引用类型

    1、Object类型

    创建Object实例的两种方式:

      第一种是使用new操作符后跟Object构造函数,如

          var person = new Object();

    person.name = "Nicholas";

    person.age = 29;

    另一种方式是使用对象字面量表示法,如

        var person = {

    name : "Nicholas",

    age : 29

    };

    2、Array类型

    ECMAScript数组的每一项可以保存任何类型的数据

    (1)创建数组

         //使用Array构造函数

              var colors = new Array();

    var colors = new Array(3); //创建包含3项的数组,每一项的初值都是undefined

    var colors = new Array(“red”,”blue”,”green”); //创建一个包含3个字符串值的数组

    //使用数组字面量表示法

    var colors = [“red”,”blue”,”green”];  //创建一个包含3个字符串的数组

    (2) 访问和设置数组

    alert(colors[0]);  //显示第一项

    colors[2] = “black”;  //修改第三项

    //数组的项数保存在其length属性中

    alert(colors.length);

    转换方法:数组继承的toLocaleString()、toString()和valueOf()方法,在默认情况下都会以逗号分隔的字符串的形式返回数组项。而如果使用join方法,则可以使用不同的分隔符来构建这个字符串。

    数组的各种操作:

    (1)使用push()和pop方法实现类似栈的行为

    (2)结合使用shift()和push()方法,可以像使用队列一样使用数组。此外,unshift()与shift()的用途相反

     (3)排序:反转数组项的顺序reverse()和升序sort()

    (4)concat 方法

    返回一个新数组,这个新数组是由两个或更多数组组合而成的。

    array1.concat([item1[, item2[, . . . [, itemN]]]])

    (5)slice 方法

    返回一个数组的一段。

    arrayObj.slice(start, [end])

       (6)splice 方法

    从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。

    arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])

             

    3、Date类型

    可以通过 new 关键词来定义 Date 对象,如

    var myDate=new Date()

       在调用Date构造函数而不传递参数的情况下,新创建的对象自动获取当前日期和时间。

       如果想根据特定日期和时间创建日期对象,ECMAScript提供了两个方法:Date.parse()和Date.UTC()。

    4、RegExp类型

       使用下面的语法可以创建一个正则表达式:

         var expression = / pattern / flags;

      其中flags支持下面3个标志:

    u      g——表示全局(global)模式

    u      i——表示不区分大小写(case-insensitive)模式

    u      m——表示多行(multiline)模式

    5、Function类型

    函数声明,如:

    function sum(num1,num2){

    return num1+num2;

    }

    函数表达式,如

    var sum = function(num1,num2){

              return num1+num2;

    }

    函数声明与函数表达式的区别:

      解析器在向执行环境中加载数据时,解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问);至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解释执行。

    6、内置对象

    在所有代码执行之前,作用域中就已经存在两个内置对象:Global和Math。

    全局变量和函数都是Global对象的属性。

    Math对象为保存数学公式和信息提供了一个公共位置。

    l        min()和max()方法用于确定一组数值中的最小值和最大值;

    l        舍入方法ceil()、floor()、round();

    l        random()方法返回介于0和1之间一个随机数,不包括0和1;

    l        其他方法 Math.abs(num)返回num的绝对值、Math.sqrt(num)返回num的平方根 等等。

  • 相关阅读:
    java基础笔记-运算符
    关于一个js连续赋值问题之我见(词略穷,见谅)
    使用div创建选取框
    JS-取出字符串中重复次数最多的字符并输出
    CSS Hack(转)
    开园第一天
    hibernate配置注意事项
    Nginx+Tomcat负载均衡
    SpringMVC上传文件
    Spring-quartz定时系统多任务配置
  • 原文地址:https://www.cnblogs.com/ww03/p/5263830.html
Copyright © 2011-2022 走看看