阅读(4564) (12)

ECMAscript标准

2017-06-12 18:18:13 更新

1、什么JavaScript?

是一门客户端的脚本语言 , 用来提供与web页面进行交互。 js可以实现: 表单验证 轮播图 放大镜 ..........

web 页面的三层结构: 结构层 html 提供页面结构 表现层 css 美化页面 行为层 js 提升用户体验

2、js的历史背景

布莱登.艾奇 JavaScript诞生于1995年。起初它的主要目的是处理以前由服务器端负责的一些表单验证。在那个绝大多数用户都在使用调制解调器上网的时代,用户填写完一个表单点击提交,需要等待几十秒,完了服务器反馈给你说某个地方填错了......在当时如果能在客户端完成一些基本的验证绝对是令人兴奋的。当时走在技术革新最前沿的Netscape(网景)公司,决定着手开发一种客户端语言,用来处理这种装简单的验证。当时就职于Netscape公司的布兰登·艾奇开始着手计划将1995年2月发布的LiveScript同时在浏览器和服务器中使用。为了赶在发布日期前完成LiveScript的开发,Netscape与Sun公司成立了一个开发联盟。而此时,Netscape为了搭上媒体热炒Java的顺风车,临时把LiveScript改名为JavaScript,所以从本质上来说JavaScript和Java没什么关系。

95 liveScript
java javascript

h5 和 js 的关系 ?

3、javascript的组成?

ECMAscript 欧洲计算机制造商协会 不是一门语言 是一个组织 用来规定js的语法规范
BOM (浏览器对象模型) DOM (文档对象模型)

4、javascript 代码实现 位置注意

1、所有的js代码都要写在 script 的标签对中
2、 script 标签放到页面的任意位置(除了title中) 3、可以将js的代码写到 .js 文件中 ,通过 <script src="xx.js"></script>,此标签对中的js代码就不会被识别了。

5、javascript的几个输出语句

alert() 通过弹出对话框的方式输出信息 (项目中不建议使用) 一般用于调试 document.write(); 在浏览器中打印结果
console.log(); 控制台输出 一般用于调试中 6、js中的注释

// 单行
/**/ 多行

7、js中的字面量(常量)

数值: 整数: 十进制整数 0---9 组成 二进制整数 0 1
八进制整数 0--7组成 一般以 0 开头 023 十六进制整数 0--9 a--f 一般以 0x 开头
小数: 0.1
1.1 + 0.1 = 1.2 字符: js中的字符 可以通过 "" 或 '' 括起来 注意引号嵌套问题: " ' ' " 或 ' " " '

8、js中标识符(变量)的命名规范

1、js中的标识符只能由 字母、数字、下划线、$ 组成(不建议用中文) 2、标识符 不能用 数字 开头 3、不能使用系统指定的关键字命名

命名规范 (扩展): 驼峰式命名法: 小驼峰 qianFengJiaoYu (lastIndexOf()) backgroundColor fontSize。。。 大驼峰 QianFengJiaoYu


 匈牙利命名法:
      iNum     命名一个整数类型的变量
      fNum     命名一个小数类型的变量
      cChar    命名一个字符类型的变量
      sStr     命名一个字符串类型的变量  (str)

(扩展)代码书写规范: 1、js中的所有代码严格区分大小写 num Num 两个不同的变量 alert() Alert() 2、js中每行语句结束后 可以使用 回车 或 ; 换行
3、js中所有的标点符号 必须使用 英文半角状态

9、js中的变量问题

变量:就是在程序运行的过程中,其值有可能会发生改变的量。

10、变量的定义和赋值

显示定义: 通过 var 定义 var iNum = 90;

隐式定义: 不同var直接就定义变量 iNum = 90;

变量必须先定义 后使用

11、js中输出结果时注意几个问题:

1、如果输出是一个变量 该变量一定不能加引号 "" 2、如果输出是一个字符类型 一定要加引号
3、如果输出的是一个数 ,可以加引号 也可以不加引号 4、如果输出的是字符 和 变量的组合,需要使用 + 拼接

12、变量的数据类型

基本数据类型 字符型 string : 数据值有多个
通过引号引起来
数值型 number : 数据值有多个 (整数和小数)

      
 布尔型  boolean :
      数据值 有两个  true    false  

复合数据类型 对象 object 特殊数据类型 null 空 undefined 未定义

13、(扩展) 测试变量的数据类型

typeof
用法: typeof 变量名 typeof(变量名)

typeof的返回值有哪些? number boolean string object undefined function

typeof typeof 数据 ---> string

14、运算符和表达式

什么是表达式: 一个字面量或一个变量或通过运算符连接的式子 23 iNum 5+8 什么是运算符:进行运算的符号

运算符有哪些? 每一个运算符对应的表达式的值

15、算术运算符

一、运算符 : (双目)+ - * / %(模运算符) (单目) ++ --

二、表达式的值

  • : 1、如果符号两侧都是纯数值类型 正常计算 68 = 48 2、如果符号两侧有一侧是纯数字字符串 纯数字字符串自动转成数值类型 6"3" = 18 "5"*"9" = 45 3、如果符号两侧有一侧是非数字字符串 结果 NaN (not a number) 不能正常计算的结果都是NaN
  • / % (对应的表达式的值 同 * )

    %(求余数): 结果正负 取决于 % 左侧的操作数 5%3 = 2 6%2 = 0 7%10 = 7 100%10 = 0 1235 % 10 = 5

  • : 表示连接 / 计算的加号 10 + "20" = "1020" "abc" + 20 + "10" = "abc2010" 数字 和 字符串相加 表示连接

    "20" + 10 - "10" = "2010"-"10" = 2000 结果类型 number

    单目运算符: ++ 自增 -- 自减 注意: ++ -- 的操作数必须是变量

    var i = 0; 表达式: i++ (后置)
    ++i (前置) i-- --i

    ++i 和 i++ 的异同: 相同: 变量i的结果都会自增1 不同: 表达式的结果不同 如果++在后,也就是i++, 先将i的值作为整个表达式的值, i再自增 (先赋值,后自增) var i = 10; j = i++; // i = 11 j = 10 (用变量j来代替整个表达式的值) 如果++在前,也就是++i, 先将i自增,再将i的值作为整个表达式的值 (先自增,后赋值) var i = 10; j = ++i; // i = 11 j = 11

    4 + true = 5 5 - false = 5

    true 和 false 进行运算时,true自动转成1 false 自动转成0

    16、关系运算符

    一、运算符: > >= < <= ==等于 ===全等于 != 不等于 !== 全不等 二、表达式的值 : true false 如果关系表达式成立,结果为 true 否则为false 3>=3 true 3 == 3 true "3" > 0 true "1" > "a" false "a1" > 20 false

    1、如果运算符两侧都是数值型 正常比较 2、如果运算符两侧都是字符型 正常比较 (通过键盘按键的ASCII码值进行比较的 0--48 a--97 A--65) 3、如果运算符两侧有一侧是纯数字字符串 自动转换后正常比较 4、如果运算符两侧有一侧是非数字字符串 不能正常比较 , 结果false

    三、 == 和 === 的区别: == 等于 只比较结果值,不比较类型 100 == “100” true 100!="100" false === 全等 先比较类型 在比较结果值 100 === “100” false 100 !== "100" true

    17、逻辑运算符

    一、运算符 ||或 && 与 ! 非 二、逻辑表达式的值 : true false (一般参与逻辑运算的都是布尔值) &&(并且): 如果&& 两侧都为真,结果为true 地球是方的 && 姚天宇是男生 -- false 地球是圆的 && 姚天宇是男生 --- true 4>5 && 8==8 false

    || ( 或者 ) : 如果 || 两侧都为假 ,结果为false
    4>5 || 8==8 true ! 非 :     !false --- true !true ----false 

    变量 num 既能被5整除 又能 被3整除 num%5==0 && num%3==0

    (扩展)逻辑运算符的短路问题 var num = 10; alert( 3>4 && num++ ); false alert( num ); 10

    false 遇到 && ,&& 后面的表达式不再执行

    var num = 10; alert( 3< 4 || ++num ); alert( num );

    true 遇到 || , || 后面的表达式 不再执行

    18、 条件运算符 三目 ? :
    一、运算符 ? : 二、表达式的值 表达式1 ? 表达式2 : 表达式3 如果表达式1的结果为真 , 整个条件表达式的值 为表达式2的值 如果表达式1的结果为假, 整个条件表达式的值 为表达式3的值

    4>5 ? 5==6 : 90 ---------90 4<5 ?  5==6 : 90 ----------false 19、用户输入问题

    prompt("用户提升语句",“”)
    点击确定,返回输入的数,点击取消 返回null 点击确定返回的结果类型是一个string类型 通过parseInt()