一、javascript的简介

  1.1 javascript的历史回顾。

      Javascript诞生于1995年。当时,它主要的目的是用来处理一些由服务器端处理的输入验证操作。在javascript没有问世之前,必须把表单数据发送到服务器端才能确定

    是否没有填写某个必填项,是否输入无效值。Netscape navigator希望通过javascript解决这个问题。在人们普遍使用电话拨号上网的年代,等待验证返回是需要一种耐心的

    行为。

      自此以后,javascript逐渐成为市面上常见的浏览器必备 的一项特色功能。如今,javascript的用途早就不仅仅局限于简单的数据验证,而是具备了与浏览器窗口及其内    

    容等几乎所有方面的交互能力。今天的javascript已经成为一门功能全面的编程语言,能够处理复杂的计算与交互,拥有了闭包、匿名函数,甚至元编程的能力。

  1.2 javascript的实现

    一个完整的javascript应该由三部分组成:

    (1)核心(ECMAScript)  (2)文档对象模型(DOM)  (3)浏览器对象模型(BOM)

    (1)ECMAScript:

      由ECMA-262定义的ECMAScript与web浏览器没有依赖关系,所以可以兼容大多数的浏览器。它的组成部分:语法,类型,语句,关键字,保留字,操作符,对象。

    (2)DOM

      DOM是针对XML但经过扩展的用于HTML的应用程序编程接口。它把整个页面映射为一个 多层节点结构。

    (3)BOM

      它作为javascript的一个部分,却没有相关的标准。但是人们习惯把所有针对浏览器的javascript扩展算作BOM的一部分。下面就是一些扩展:

      1)弹出新浏览器窗口的功能;

      2)移动,缩放和关闭浏览器窗口的功能;

      3)提供浏览器详细信息的navigator对象;

      4)提供浏览器所加载的页面的详细信息location对象;

      5)提供用户显示器分辨率详细信息的screen对象;

      6)对cookie的支持;

      7)像XMLHttpRequest和IE的ActiveXObject这样的自定义对象;

二、在HTML中使用javascript

  1、使用<script>元素 , 它具有的属性:

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

  (2)charset:可选。表示通过src属性指定代码的字符集。由于大多数浏览器会忽略他的值因此很少使用。

  (3)defer:可选。表示脚本可以延迟到文档完全被解析和显示之后在执行。只对外部脚本文件有效。

  (4)src:可选。表示要执行的外部脚本文件。

  (4)type:可选。表示编写代码使用的脚本语言的内容类型。

  2、延迟脚本。

  defer="defer":表示脚本会被延迟到整个页面解析完毕后再执行。

  3、异步脚本。

  async:表示不让页面等待脚本下载和执行,从而异步加载页面的其他内容,建议异步脚本不要在加载期间修改DOM。

  

三、基本概念。

  3.1 区分大小写。3.1.2标示符:是指变量、函数、属性的名字,或者函数的参数。3.1.3严格模式。

  3.2 数据类型:Undefined类型:这个值未定义。

    Null类型:这个值为空。

    Boolean类型:这个值是布尔型。

    Number类型:这个值是数值。

    String类型这个值是字符串。

    Object类型:这个值是个对象或为null。

  3.3 理解参数

      ECMAScript函数的参数与大多数其他语言中函数的参数有所不同,ECMAScript函数不介意传递进来多少个参数,也不在乎传进来参数是什么数据类型。也就是说:

  即使你定义的函数只接收两个参数,在调用这个函数时野未必一定要传递两个参数。可以传递一个、三个甚至不传递参数,而解析器永远不会有什么怨言。之所以这样,原因

  是ECMAScript中的参数在内部是用一个数组来表示的。函数接收到的始终都是这个数组,而不关心数组中包含哪些参数(如果有参数的话)。如果这个数组中不包含任何元素,

  无所谓;如果包含多个元素,也没有问题。实际上,在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的额每一个参数。

  

  3.4 没有重载

    如果定义了两个名字相同的函数,则该名字只属于后定义的函数。也就是说后定义的函数会覆盖先定义的函数。

  4.1 基本类型和引用类型的值

    ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型。基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。

    在将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值。基本数据类型:Undefined、null、Boolean、Number和String。这 5种基本

  类型是按值访问的,因为可以操作保存在变量中的实际值。

    引用类型的值是保存在内存中的对象。与其他语言不同,javascript不允许直接访问内存中的位置,也就是说不能直接操作对象的额内存空间,在操作对象的时候

  实际上是在操作对象的引用而不是实际的对象,为此,引用 类型的值是按引用访问的。

    

JavaScript高级编程(1)——JavaScript初识的更多相关文章

  1. javascript高级编程笔记01(基本概念)

    1.在html中使用JavaScript 1.  <script> 元素 <script>定义了下列6个属性: async:可选,异步下载外部脚本文件. charset:可选, ...

  2. JavaScript高级编程———JSON

    JavaScript高级编程———JSON < script > /*JSON的语法可以表达一下三种类型的值 简单值:使用与javas相同的语法,可以在JSON中表达字符串.数值.布尔值和 ...

  3. JavaScript高级编程———基本包装类型String和单体内置对象Math

    JavaScript高级编程———基本包装类型和单体内置对象 <script> var stringObject = new String("hello world") ...

  4. JavaScript高级编程——Date类型

    JavaScript高级编程——Date类型 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ...

  5. JavaScript高级编程——Array数组迭代(every()、filter()、foreach()、map()、some(),归并(reduce() 和reduceRight() ))

    JavaScript高级编程——Array数组迭代(every().filter().foreach().map().some(),归并(reduce() 和reduceRight() )) < ...

  6. JavaScript高级编程——引用类型、Array数组使用、栈方法

    JavaScript高级编程——引用类型.Array数组使用.栈方法 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999 ...

  7. JavaScript高级编程———数据存储(cookie、WebStorage)

    JavaScript高级编程———数据存储(cookie.WebStorage) <script> /*Cookie 读写删 CookieUtil.get()方法根据cookie的名称获取 ...

  8. JavaScript高级编程(一)

    书中第2章,在HTML中使用JavaScript摘要总结 2.1 <script>元素 <script>中的5个属性:charset:可选.表示通过src属性指定的代码的字符集 ...

  9. JavaScript高级编程 (1) - javscript是什么

    <重温javascript>这是一系列 javascript 的学习笔记,部分内容摘自书本或者网络,我这里只是基于自己的理解进行了梳理整理. 一个完整的 javscript 实现是由以下3 ...

随机推荐

  1. LOL新版符文 怎么查看队友的符文配置?

    LOL怎么看其他玩家符文? 像我这种名字都懒的打的, 直接去WeGame复制昵称. 然后在LOL主界面点生涯, 之后搜索 光头强xian生

  2. Mac系统下 解决ThinkPHP生成目录,无法保存问题

    Mac环境下我们建立目录的时候往往要增加目录的时候要修改权限,输入密码,大大的降低了效率. 解决办法: 1.找到你的目录站点 终端打开打 2.终端输入find file -exec sudo chmo ...

  3. unittest_API自动化脚本应用

    import urllib.request import urllib.parse import json import unittest from HTMLTestRunner import HTM ...

  4. js之Ajax下载文件

    传统上,客户端将依靠浏览器来处理从服务器下载文件.然而,这种方法需要打开一个新的浏览器窗口,iframe或任何其他类型的不友好和黑客行为.为下载请求添加额外的头信息也很困难.更好的解决方案是使用HTM ...

  5. 再探haproxy

    一 设置haproxy输出log 1.1 调整配置文件 默认haproxy是不会输出log到文件的,这样很大程度在查询问题时会很不方便,haproxy是可以输出日志到文件的,配置文档类似于如下: ]# ...

  6. 海龟绘图turtle库之二级基础编程题

    一.画一个太极图 import turtle as t t.pensize(2)#设置笔画宽度 t.circle(100)#以100为半径的圆 t.circle(50, 180) t.circle(- ...

  7. VUE最佳实践

    vuex 作为model数据请求由action来获取,页面组建级的发送action,返回promise给组建使用,如果使用周期较长需comit到mutation保存到state. 数据分模块,根据业务 ...

  8. python的基本数据类型(一)

    一.运算符逻辑运算and:两边都真则真or:有真则真not:非假是真 顺序:()>==>not==>and>=or 二.while.. elsewhile 条件: 代码块els ...

  9. pycharm激活码

    MTW881U3Z5-eyJsaWNlbnNlSWQiOiJNVFc4ODFVM1o1IiwibGljZW5zZWVOYW1lIjoiTnNzIEltIiwiYXNzaWduZWVOYW1lIjoiI ...

  10. 背水一战 Windows 10 (108) - 通知(Tile): application tile 基础, secondary tile 基础

    [源码下载] 背水一战 Windows 10 (108) - 通知(Tile): application tile 基础, secondary tile 基础 作者:webabcd 介绍背水一战 Wi ...