• 关于JS的概念
  1. JavaScript 是一种弱类型语言。
  2. JavaScript 是一种客户端脚本语言(脚本语言是一种轻量级的编程语言)。
  3. JavaScript是基于对象的。(因为面向对象需要具有封装、继承、多态的特征)
  4. JavaScript是一门解释型的语言,浏览器充当解释器(就是说,代码执行不进行预编译)。
  5. JavaScript执行引擎并不是一行一行的执行,而是一段一段的分析执行。
  • JS的引入与放置位置

1.引入方式一:使用<script>标签,直接在HTML代码里加入JavaScript代码;

2.引入方式二:使用<script src=”XXX.js”>调用外部的JavaScript(.js)文件;

<script src=”js/jquery.js”></script>

注意:外部的.js文件里面直接写js代码,不要在开头和结尾加标签;

3.引入方式三:在html标签的事件中,超级链接里;

<button onclick="javaScript语言"></button>
<a href="javascript:alert('aa');alert('bb')">点击</a>

4.错误方式:调用外部的JavaScript(.js)文件,就不能再在里面写;

<script src=”xxx.js”>
var _name =’张三’;
alert(_name);
</script>

5.多段script的执行顺序

按引入顺序,逐段执行(思考为什么N多页面吧JS写在最后?)

a.防止页面一次出现,等待时间较长,不符合人的阅读习惯

b.防止js语言已经出现,但是变量在js之后没有在内存中读取,导致js找不到变量发生错误

6.JS代码放的位置:页面head和body都可以写

页面中的脚本会在页面载入浏览器后立即执行,我们并不总希望这样。有时,我们希望当页面载入时执行脚本;而另外的时候,我们则希望当用户触发事件时才执行脚本。

a.把JavaScript代码放到HTML<body>部分

把页面载入时就需要执行的JavaScript代码放到<body>标签之间。这是一种规范,建议这样做。

b.把JavaScript代码放到HTML<head>部分

把当脚本被调用时,或当事件被触发时才会执行的JavaScript代码放到<head>标签之中,这样就可以确保在调用JavaScript之前就载入了它。这是一种规范,建议这样做。

7.如何与老浏览器打交道

那些不支持 JavaScript 的浏览器会把脚本作为页面的内容来显示。为了防止这种情况发生,我们可以使用这样的 HTML 注释标签:

 <html>
<body>
<script type="text/javascript">
<!--//HTML注释
document.write("Hello World!");//JavaScript代码
//-->//JavaScript注释
</script>
</body>
</html>
/*注释行末尾的两个正斜杠是 JavaScript 的注释符号,它会阻止 JavaScript 编译器对这一行的编译.*/
  • JS的语句与注释

(1)JavaScript语句结束符

通常要在每行语句结尾加上一个分号(;),但是根据JavaScript标准语句结尾的分号是可选的,浏览器会把行末作为语句的结尾。

 <script type="text/javascript">
document.write("语句1<br>")
document.write("语句2<br>")
</script>

(2)JavaScript代码块

JavaScript可以分批的组合起来,使用“{”“}”把多条语句括起来组成代码块。代码块的作用是一并的执行语句序列。

 <script type="text/javascript">
{
document.write("<h1>This is a header</h1>");
document.write("<p>This is a paragraph</p>");
document.write("<p>This is another paragraph</p>");
}
</script>

(3)JavaScript注释

 <script type="text/javascript">

      document.write("JavaScript注释!");//双斜杠表示行注释(第一种)
/*
第二种,块注释
*/
</script>
  • 关于延迟脚本与异步脚本

延迟脚本

HTML4.0.1中定义了defer属性,它的用途是表明脚本在执行时不会影响页面的构造。也就是说,脚本会延迟到整个页面都解析完毕后再执行。 因此,在<script>元素中设置defer属性,相当于告诉浏览器立即下载,但延迟执行。在XHTML文档中,要把defer属性设置为defer=“defer"。

异步脚本

html5为<script>定义了async 属性。整个属性与defer属性类似,都用于改变处理脚本的行为。同样,与defer类似,async只适用于外部脚本文件,并告诉浏览器立即下载文件。 但与defer不同的是,标记为async的脚本并不保证按照指定他们的先后顺序执行。指定async的目的是不让页面等待脚本文件下载和执行,从而异步加载页面其他内容。因此,建议异步脚本不要再加载期间操作DOM。

  • JS与DOM的关系

浏览器有渲染html代码的功能,把html源码在内存里形成一个DOM对象,就是文档对象。浏览器内部有一个JS的解释器/执行器/引擎、如chrome 用V8引擎。我们在html里写一个JS代码,JS代码被引擎所执行,而执行的结果就是对DOM的操作。而对学习DOM操作的结果,就是我们常常看到的特效,比如图片漂浮,文字变色等。学习Javascript要注意:

  1. JS语言本身的语法
  2. DOM对象(把body,div,p等节点树看成一个对象)
  3. BOM对象(把浏览器的地址栏,历史记录,DOM等庄子啊一个对象)
  4. 浏览器是宿主,但JS的宿主不限于浏览器,也可以是服务器端

JavaScript基础1——基本概念的更多相关文章

  1. JavaScript基础知识(概念、常量和变量)

    1.JavaScript概念 JavaScript是脚本语言; 编写之后,可以直接运行(缺失了编译的过程) 2.JavaScript发展 LiveScript    =>    JavaScri ...

  2. JavaScript基础知识-基本概念

    typeof操作符 typeof 操作符返回一个字符串,表示未经计算的操作数的类型. // 数值 typeof 37 === 'number'; typeof 3.14 === 'number'; t ...

  3. 【javascript基础】2、函数

    前言 我在上一篇[javascript基础]基本概念中介绍了javascript的一些基本概念,多谢大家的阅读和意见,自己写的东西可以被大家阅读,真心高兴,刚开始发布的时候我一直盯着阅读人数,虽然知道 ...

  4. 一步步学习javascript基础篇(0):开篇索引

    索引: 一步步学习javascript基础篇(1):基本概念 一步步学习javascript基础篇(2):作用域和作用域链 一步步学习javascript基础篇(3):Object.Function等 ...

  5. 前端之JavaScript基础

    前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript历史 1992年Nombas开发出C ...

  6. 一步步学习javascript基础篇(3):Object、Function等引用类型

    我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...

  7. Javascript基础回顾 之(三) 面向对象

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  8. Javascript基础回顾 之(一) 类型

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  9. JavaScript 基础回顾——对象

    JavaScript是基于对象的解释性语言,全部数据都是对象.在 JavaScript 中并没有 class 的概念,但是可以通过对象和类的模拟来实现面向对象编程. 1.对象 在JavaScript中 ...

随机推荐

  1. Zuul(SpringCloud学习笔记一)

    路由是微服务架构中必须(integral )的一部分,比如,"/" 可能映射到你的WEB程序上,"/api/users "可能映射到你的用户服务上," ...

  2. 源码剖析Django REST framework的认证方式及自定义认证

    源码剖析Django REST framework的认证方式 在前面说过,请求到达REST framework的时候,会对request进行二次封装,在封装的过程中会对客户端发送过来的request封 ...

  3. java 中 “文件” 和 “流” 的简单分析

    java 中 FIle 和 流的简单分析 File类 简单File 常用方法 创建一个File 对象,检验文件是否存在,若不存在就创建,然后对File的类的这部分操作进行演示,如文件的名称.大小等 / ...

  4. 《java.util.concurrent 包源码阅读》21 CyclicBarrier和CountDownLatch

    CyclicBarrier是一个用于线程同步的辅助类,它允许一组线程等待彼此,直到所有线程都到达集合点,然后执行某个设定的任务. 现实中有个很好的例子来形容:几个人约定了某个地方集中,然后一起出发去旅 ...

  5. 解决div里面img标签后面跟着空白符

    直接在div里面添加img标签有一个坑,img的高度会莫名添加几个像素的高度,查询之后才知道原来css2出现的问题. 引起这个问题原来是img标签默认基线引起的,vertical-align:base ...

  6. VC++下编译 程序“减肥”

    在vc6 和 vs 2008下 编译 以下代码,不更改任何编译设置(vc6  40k , s2008 7k). 一.vc6下,Release 模式 编译处理. 1.去掉不必要的 链接库  工程(Pro ...

  7. AngularJS 拦截器实现全局$http请求loading效果

    日常项目开发中,当前端需要和后端进行数据交互时,为了友好的UI效果,一般都会在前端加个loading的状态提示(包括进度条或者icon显示),数据传输或交互完成之后,再隐藏/删除loading提示. ...

  8. CCF-201509-3-生成模板系统

    问题描述 试题编号: 201509-3 试题名称: 模板生成系统 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 成成最近在搭建一个网站,其中一些页面的部分内容来自数据库中不同 ...

  9. Linux 定期自动备份文件夹脚本

    根据网上代码改编而成,这个脚本分为两个文件,一个是执行文件backup.sh,另一个是备份项目文件backup.txt.backup.txt这个文件比较好理解,就是一个text文件,它的每一行表示一个 ...

  10. UWP 邮件反馈

    在我们构建App的时候,一个很人性化的设计就是增加邮件反馈渠道,就是让用户直接发邮件给你反馈. 当然,你也可以用系统自带的"反馈中心"(超级无敌难用,还经常打不开),或者使用商店的 ...