java Script学习笔记

java Script学习笔记

标签: 学习笔记 javaScript



知识点回顾

  1. 命名规范
    1.匈牙利命名法:类型前缀+首字母大写
    var sUserName;即s表示字符串
    2.驼峰命名法:混合使用大小写字母
    userName;首单词后首字母大写

  2. 获取元素
    document.getElementById(‘btn’);
    :document:整个html文档
    :通过id名:通过id获取元素(节点)
    :在文档里面查找id为btn的元素
    :所以id必须是唯一的

  3. 鼠标事件:
    onmouseover:当鼠标经过的时候
    onmouseout:当鼠标离开的时候
    onclick:当鼠标点击的时候

     function show(){
        代码
    }
    show();

JavaScript 实现

虽然JavaScript 和ECMAScript 通常都被人们用来表达相同的含义,但JavaScript 的含义却比ECMA-262 中规定的要多得多。没错,一个完整的JavaScript实现应该由下列三个不同的部分组成。

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

ECMAScript:解析器

    由ECMA-262 定义的ECMAScript 与Web 浏览器没有依赖关系。实际上,这门语言本身并不包含输入和输出定义。ECMA-262定义的只是这门语言的基础,而在此基础之上可以构建更完善的脚本语言。我们常见的Web浏览器只是ECMAScript 实现可能的宿主环境之一。宿主环境不仅提供基本的ECMAScript实现,同时也会提供该语言的扩展,以便语言与环境之间对接交互。而这些扩展——如DOM,则利用ECMAScript的核心类型和语法提供更多更具体的功能,以便实现针对环境的操作。其他宿主环境包括Node(一种服务端JavaScript 平台)和Adobe Flash。既然ECMA-262 标准没有参照Web 浏览器,那它都规定了些什么内容呢?大致说来,它规定了这门语言的下列组成部分: 语法 类型 语句 关键字 保留字 操作符 对象

ECMAScript 就是对实现该标准规定的各个方面内容的语言的描述。JavaScript 实现了ECMAScript,Adobe ActionScript 同样也实现了ECMAScript。
得到的结果只有:true false

DOM:文档对象模型

    文档对象模型(DOM,Document Object Model)是针对XML 但经过扩展用于HTML的应用程序编程接口(API,Application ProgrammingInterface)。DOM把整个页面映射为一个多层节点结构。HTML或XML页面的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。看下面这个HML 页面:
    <html>
    <head>
    <title>Sample Page</title>
    </head>
    <body>
        <p>Hello World!</p>
    </body>
    </html>
    通过DOM创建的这个表示文档的树形图,开发人员获得了控制页面内容和结构的主动权。

借助DOM提供的API,开发人员可以轻松自如地删除、添加、替换或修改任何节点。

BOM:浏览器对象模型

    Internet Explorer 3 和Netscape Navigator 3有一个共同的特色,那就是支持可以访问和操作浏览器窗口的浏览器对象模型(BOM,Browser Object Model)。开发人员使用BOM 可以控制浏览器显示的页面以外的部分。而BOM真正与众不同的地方(也是经常会导致问题的地方),还是它作为JavaScript 实现的一部分但却没有相关的标准。这个问题在HTML5 中得到了解决,HTML5致力于把很多BOM 功能写入正式规范。HTML5发布后,很多关于BOM 的困惑烟消云散。从根本上讲,BOM只处理浏览器窗口和框架;但人们习惯上也把所有针对浏览器的JavaScript 扩展算作BOM的一部分。下面就是一些这样的扩展:
  • 弹出新浏览器窗口的功能
  • 移动、缩放和关闭浏览器窗口的功能;
  • 提供浏览器详细信息的navigator 对象;
  • 提供浏览器所加载页面的详细信息的location 对象;
  • 提供用户显示器分辨率详细信息的screen 对象;
  • 对cookies 的支持;
  • 像XMLHttpRequest 和IE 的ActiveXObject 这样的自定义对象。;

借助BOM可以赋予js操控浏览器窗口的能力,比如复制,弹窗等


如何在HTML中使用JavaScript

  1. 分析:结构 样式 事件
  2. 通过HTML布局
  3. 添加样式
  4. 添加JS事件
     使用<script>元素
     嵌入脚本与外部脚本

数据类型

  • typeo类型:检测给定变量的数据类型
    可以返回下列的某个字符串:
     “undefined”——如果这个值未定义;
     “boolean”——如果这个值是布尔值;
     “string”——如果这个值是字符串;
     “number”——如果这个值是数值;
     “object”——如果这个值是对象或null;
     “function”——如果这个值是函数。

  • Underfined类型:只有一个值,即特殊的underfined,声明变量但未对其加以初始化时,这个变量的值就是underfined。
    例如:

var message;
alert(message == undefined); 
//true
  • Null类型:只有一个值,值是null,表示空对象,使用typeof返回值是object。
    例如:
var car = null;
alert(typeof car); // "object"
  • Boolean类型(布尔值):只有两个值 (true)和(false)

  • Numder类型(数值):
    分为整数和浮点,并且存在数值范围,NaN属于特殊数值(非数值Not a Number)
    数值转换:Number()、parseInt()、parseFloat()

  • String类型(字符串):字符串可以由双引号(”)或单引号(’)表示,两种字符串的写法都是有效的:

var firstName = "Nicholas";
var lastName = 'Zakas';
  • Object类型(对象):一组数据和功能的集合,可以通过new操作符创建,
var o = new Object();

仅仅创建Object 的实例并没有什么用处,但关键是要理解一个重要的思想:
即在ECMAScript中,(就像Java中的java.lang.Object对象一样)Object类型是所有它的实例的基础。换句话说,Object类型所具有的任何属性和方法也同样存在于更具体的对象中。Object的每个实例都具有下列属性和方法。
》 constructor:保存着用于创建当前对象的函数。对于前面的例子而言,构造函数(constructor)就是Object()。
》 hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例如:o.hasOwnProperty(“name”))。
》 isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型(第5 章将讨论原型)。
》 propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in 语句来枚举。与hasOwnProperty()方法一样,作为参数的属性名必须以字符串形式指定。
》 toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
》 toString():返回对象的字符串表示。
》 valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。


结构语句

  • 循环结构:for和while
  • 判断结构:if和switch

变量作用域:局部变量优先于全局变量

    执行环境(execution context,为简单起见,有时也称为“环境”)是JavaScript 中最为重要的一个概念。执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为。每个执行环境都有一个与之关联的变量对象(variable object),环境中定义的所有变量和函数都保存在这个对象中。虽然我们编写的代码无法访问这个对象,但解析器在处理数据时会在后台使用它。
    全局执行环境是最外围的一个执行环境。根据ECMAScript 实现所在的宿主环境不同,表示执行环境的对象也不一样。在Web 浏览器中,全局执行环境被认为是window 对象(第7章将详细讨论),因此所有全局变量和函数都是作为window 对象的属性和方法创建的。某个执行环境中的所有代码执行完毕后,该环境被销毁,保存在其中的所有变量和函数定义也随之销毁(全局执行环境直到应用程序退出——例如关闭网页或浏览器——时才会被销毁)。
    每个函数都有自己的执行环境。当执行流进入一个函数时,函数的环境就会被推入一个环境栈中。而在函数执行之后,栈将其环境弹出,把控制权返回给之前的执行环境。ECMAScript 程序中的执行流正是由这个方便的机制控制着。
    当代码在一个环境中执行时,会创建变量对象的一个作用域链(scope chain)。作用域链的用途,是保证对执行环境有权访问的所有变量和函数的有序访问。作用域链的前端,始终都是当前执行的代码所在环境的变量对象。如果这个环境是函数,则将其活动对象(activation object)作为变量对象。活动对象在最开始时只包含一个变量,即arguments 对象(这个对象在全局环境中是不存在的)。作用域链中的下一个变量对象来自包含(外部)环境,而再下一个变量对象则来自下一个包含环境。这样,一直延续到全局执行环境;全局执行环境的变量对象始终都是作用域链中的最后一个对象。
    标识符解析是沿着作用域链一级一级地搜索标识符的过程。搜索过程始终从作用域链的前端开始,然后逐级地向后回溯,直至找到标识符为止(如果找不到标识符,通常会导致错误发生)。

数组

不同于其他语言的的是:可以保存任何数据类型,相同的于:都是有序的数据
创建数组的基本方式有两种:
1.使用Array构造函数 var color=new Array();
2.使用数组字面量表示法由一对包含数组项的方括号表示,多个数组项之间以逗号隔开。

运算符

1.算术运算符:+-*/% 优先级高于赋值运算符
2.赋值运算符:= += -= /= %= ++ –
3.关系运算符:< > <= >= == === != !== (得到的结果只有:true和false)
4.逻辑运算符:&& || !
true是字符串; true; 非0数值

资料收集

JavaScript了解

任何语言的核心都必然会描述这门语言最基本的工作原理。而描述的内容通常都要涉及这门语言的语法、操作符、数据类型、内置功能等用于构建复杂解决方案的基本概念。如前所述,ECMA-262通过叫做ECMAScript的“伪语言”为我们描述了JavaScript的所有这些基本概念。

javaScript基本概念理解

  • 语法
  • 关键字和保留字
  • 变量
  • 数据类型
  • 操作符
  • 语句
  • 函数

javaScriipt核心内容

  • 词法结构
  • 类型、值和变量
  • 表达式和运算符
  • 语句
  • 对象
  • 数组
  • 函数
  • 类和模块
  • 正则表达式的模式匹配
  • 子集和扩展
  • 服务器端JS

学习资料收集

  • JavaScript权威指南(第6版)中文版
  • JavaScript高级程序设计(第3版)
  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值