一、简介
1、历史
1995年,javascript诞生。
1997年,1.1版本提交到ECMA协会,ECMAScript作为JS新脚本语言的标准。
2、Web浏览器下的实现——包括:ECMAScript、DOM、BOM
ECMAScript:语言核心,语言标准;规定了这门语言的组成:语法、类型、语句、关键字、保留字、操作符、对象。ECMA协会制定标准,基本上没有兼容性问题。
包括的版本:ES1、ES2、ES3、ES4(由于太超前的标准被弃用)、ES5(现在常用的版本)、ES6(最新的语言标准,越来越像后端语言)
DOM:文档对象模型,与页面进行交互;借助DOM提供的API来控制页面元素、节点的增删改查;实现鼠标与页面事件、以及对CSS的支持等。DOM版本:DOM1、DOM2、DOM3。W3C组织制定标准。有一小部分兼容性问题。
BOM:浏览器对象模型,支持可以访问和操作浏览器;提供了关于:弹出窗口;移动、缩放、关闭窗口;navigator对象;location当前加载页面相关信息;screen显示分辨率对象;对cookies的支持;XMLHttpRequest和ActiveXObject对象等。由浏览器厂商自行实现,兼容性问题很多。
二、在HTML中使用Javascript
1、<script>标签,属性有:
async:立即加载这个脚本,但不妨碍下载其他资源或等待加载其他脚本。
charset:忽略。
defer:脚本延迟到文档被解析和显示后执行。最好最多写一个,否则执行顺序无法保证。
language:已废弃。
src:要加载资源。
type:表示代码使用的内容类型MIME;默认 text/javascript,所以可以不写。
PS:如果代码中有需要引用的脚本时,需要使用转义符
$(xx).append("<script src='xxx'><\/script>");
2、script标签位置:最好放在页面最后面。
好处:1)、更快的显示页面;2)、当脚本报错时,不会影响页面的显示。
js脚本通过外部引入的好处:
1)、可维护性,脚本与页面分离,方便维护且不显凌乱。
2)、可缓存,如果有多个页面使用同一个js,在浏览器访问时,只会下载一次。
3)、可共用性好,方便脚本资源共享。
3、文档模式:混杂模式、标准模式
标准模式是理想的浏览器模式;混杂模式是对之前老版网站所做的兼容处理模式。
4、<noscript>标签
1)在某些浏览器不支持Js;2)在浏览器被关闭执行js的时候,显示该标签的提示内容,对用户更友好。
三、基本概念
1、语法
1.1、区分大小写,typeof关键字不能做标识符,但typeOf就可以。
1.2、标识符:包括 变量名、函数名、属性名、函数参数,规范:
1)字母、下划线(_)、美元符号$、数字
2)在上面1)的基础上,第一个字符不能是数字。
3)不能是ECMAScript的关键字。
1.3、注释
// 单行注释
/* 
多行注释 
*/
1.4、语句。
1)结束语句用 ; 分号,最好都使用。以免压缩js时出现问题。
2)控制语句,都用花括号,更规范。
1.5、严格模式
写法:要在作用域的顶部添加  'use strict';  如<script>最上面;如函数最上面;写在中间无效。
目的:1)消除js语法的不合理、不严谨之处,减少怪异行为。2)保障代码运行安全。3)提高编译器效率,增加运行速度。
详细介绍请看:http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html
严格模式跟正常模式写法不同点,总结如下:
1)变量不能没有定义。
2)禁止使用 with 语句。
3)eval执行后作用域控制在eval内部,阻止内部作用域流出到外部,如eval("var x = 5")
4)禁止this关键字指向全局对象window
5)禁止在函数内部调用函数自己(会报错)
6)禁止删除变量。delete 可以删除对象上的属性,不能删除变量,严格模式下删除会报错。
7)对只读属性强行赋值时,严格模式下会报错。
8)严格模式下,删除一个不可删除的属性时,会报错。如,delete Object.prototype,正常模式也无法删除,但是不报错。严格模式下会报错。
9)定义的对象里,不能有相同名的属性。正常模式下,后面的属性会覆盖前面,但严格模式下属于语法错误。
10)函数不能有重名的参数,严格模式下属于语法错误,报错。
11)禁止八进制表示法,'use strict';  var xx = 0100;  //语法错误
12)arguments不再追踪参数的变化,且跟所传的形参不是同一个东西。
13)不允许在非函数(如if、for)的代码块内声明函数。严格模式下会有语法错误。
14)关键字、保留字使用这些作为参数名、变量名 在严格模式下会报错。

转载于:https://www.cnblogs.com/souyidai/p/js_1.html

高程三(1):简介、使用、严格模式相关推荐

  1. MOOS-ivp 实验三 MOOS简介(1)

    MOOS-ivp 实验三 MOOS简介(1) 实验三主要包含三个实验目标: 1.moos发布-订阅结构体系 2.启动MOOSDB并且进行交互 3.日志记录器的运行与生成 文章目录 MOOS-ivp 实 ...

  2. MOOS-ivp 实验三 MOOS简介(2)

    MOOS-ivp 实验三 MOOS简介(2) 继上一篇文章继续对实验进行记录 文章目录 MOOS-ivp 实验三 MOOS简介(2) 四.Launching a Mission with pAntle ...

  3. JAVA 设计模式(三)—— 设计模式之工厂模式

    文章目录 一.工厂模式概述 1.工厂模式简介 2.工厂模式分类 二.简单工厂模式 1.简单工厂模式示例 2.简单工厂模式分析 三.工厂方法模式 1.工厂方法模式示例 2.工厂方法模式分析 四.抽象工厂 ...

  4. 我国民用高分辨率光学传输型立体测图卫星-资源三号简介(文末附带示例数据)

    我国民用高分辨率光学传输型立体测图卫星-资源三号简介 目前资源三号由资源三号01星和资源三号02星组成: 资源三号01星(ZY3-01)是我国首颗民用高分辨率光学传输型立体测图卫星,于2012年1月9 ...

  5. 领域驱动系列:三种领域逻辑组织模式的本质

    企业应用架构模式中明确提出了三种领域逻辑组织模式:事务脚本.领域模型和表模块.不少人看的云里雾里的,不少人说的似懂非懂的,主要原因是没有从项目的级别的分析和设计经验,只有单个项目模块的开发经验的人很难 ...

  6. ML之FE:数据处理—特征工程之数据集划分成训练集、验证集、测试集三部分简介、代码实现、案例应用之详细攻略

    ML之FE:数据处理-特征工程之数据集划分成训练集.验证集.测试集三部分简介.代码实现.案例应用之详细攻略 目录 数据集划分成训练.验证.测试三种数据的简介 1.训练集.验证集的作用 2.验证数据集 ...

  7. MOOS-ivp 实验三 MOOS简介(3)

    MOOS-ivp 实验三 MOOS简介(3) 继上一篇文章继续对实验进行记录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 MOOS-ivp 实验三 MOOS简介(3) ...

  8. 数字逻辑电路(前三章简介)

    数字逻辑电路(前三章简介) 第一章 数字逻辑基础 1.码制 BCD码 格雷码 ASCll码奇偶校验码 2.逻辑运算 与,或,非,与非,或非,与或非,异或,同或. 3.基本公式 0-1律,互补律,还原律 ...

  9. 从诸葛亮的三个锦囊妙计谈策略模式

    从诸葛亮的三个锦囊妙计谈策略模式 话说当年东吴孙权为刘备借走了荆州不还而耿耿于怀,却不料甘夫人去世,周郎顿时计上心来,让孙权将其妹嫁与刘备,骗刘备来东吴完婚.刘备又不是傻子,当然知道其中的猫腻,当即表 ...

  10. 一个星期使用三种不同的开发模式完成资讯类App——《听风资讯》

    文章目录 1.引言 2.App开发模式的主要区别 3.App开发模式在开发项目时所使用到的技术栈 4.App开发时的感想 4.1 Native App(原生App) 4.1.1 Material De ...

最新文章

  1. iOS逆向(1)——利用ipa重签名,3分钟iPhone安装多个微信
  2. installEventFilter、eventFilter函数理解
  3. 远程连接管理软件 v1.0
  4. ArcGIS学习路线
  5. emacs mysql_使用Emacs作为MySQL的客户端
  6. 【干货】百度知识中台白皮书:从数据到知识,知识中台赋能企业智能化升级.pdf(附下载链接)...
  7. 使用jQuery实现全选、全不选、 反选(button)
  8. 数据结构(二)之二叉树
  9. Unity3D丨面试题目
  10. 向日葵远程控制软件linux版安装
  11. Web前端 学习知识点总结(十二)jQuery进阶 表单验证和简单正则表达式
  12. 为什么显示连接服务器超时,连接服务器超时什么意思
  13. c语言画实心坐标点,c-绘制实心圆的快速算法?
  14. 在新旧交替的过程中,我们成长着—导师制,舞台和挑战
  15. 如何安装故障恢复控制台
  16. LINUX学习之进程进阶
  17. 阿里云公共DNS安全传输服务介绍(DoH/DoT)
  18. 亚马逊账户安全需要做什么?亚马逊账户规则
  19. 从进化论的角度聊一聊大分子编码说和老王谬论
  20. word2010生成的目录右侧不对齐怎么办?

热门文章

  1. Debian Ubuntu/Centos7设置某些软件不自动更新
  2. MAC中JAVA安装和环境变量设置,java 11
  3. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第5节 使用骨架创建maven的java工程_11使用骨架创建maven的java工程...
  4. [HNOI2014]世界树
  5. 推荐一下干货-------为什么你的app不耐看
  6. 通过tomcat配置solr 4.10.3
  7. python三级菜单的实现
  8. 四个数学软件主要特点
  9. VC 中一些控件的使用方法(TabControl, 工具栏)
  10. 手动解除浏览器跨域限制