Javascript 一、泛讲

一、介绍

一种客户端语言,在浏览器执行,原名叫ECMAScript。是一种直接就能解释执行的脚本语言(就是说,代码执行不进行预编译),另外还有dos命令,SQL。它是非常灵活的动态语言,不严谨。数据类型不固定。用途很广常被用来改进设计、验证表单、检测浏览器、创建cookies......

二、基本组成

Dom(文档对象模型)
Bom(浏览器对象,有兼容性的问题)

三、如何实现 JavaScript

1.方式一:
<script language = "javascript" type="text/javascript">
document.write("输出的文字");
</script>

2.方式二:
<script src="helloworld.js"></script>

3.如何与老的浏览器打交道:
那些不支持 JavaScript 的浏览器会把脚本作为页面的内容来显示。为了防止这种情况发生,我们可以使用这样的 HTML 注释标签:
<script type="text/javascript">
<!--
document.write("Hello World!");
//-->
</script>
注:释行末尾的两个正斜杠是 JavaScript 的注释符号,它会阻止 JavaScript 编译器对这一行的编译。

四、 放置何处

当页面载入时,会执行位于 body 部分的 JavaScript。
当被调用时,位于 head 部分的 JavaScript 才会被执行。
你可以在文档中放置任何数量的脚本,因此你既可以把脚本放置到 body,又可以放置到 head 部分。
注意:在一个HTML文档中,所有位置的脚本代码,包括引入的外部js代码,他们都将成为一个整体。你可以把他们想象成在一个类中。因此,有时来自不同文件的重名方法或重名变量,会导致意想不到的错误发生。

五、语法

JavaScript 是由浏览器执行的语句序列。这些命令的作用是告诉浏览器要做的事情。通常要在每行语句的结尾加上一个分号。

1.数据类型

5 种基本数据类型 

undefined / null / boolean / number / string

1种复杂的数据类型 : Object类型,Object类型是所有其他对象的基类。

注意:JavaScript并不区分浮点数和整数,都是用number来表示。

2.基本操作符

算术运算符:+  –  *  /  %  ++  --  ,其中+号还被重载用于拼接字符串,另外,任何类型+上字符串都是字符串。

赋值运算符:=  +=  -=  *=  /=  %=

比较运算符:==  ===  !=  >  <  >=  <=

逻辑运算符:&&  ||  !

条件运算符:? :

3.控制语句

这就是我们常说的if-else之类的控制语句。

常用的并不多:if语句、switch语句、for语句、while语句、for-in语句。

4.函数

将脚本编写为函数,就可以避免页面载入时执行该脚本。函数包含着一些代码,这些代码只能被事件激活,或者在函数被调用时才会执行。你可以在页面中的任何位置调用脚本(如果函数嵌入一个外部的 .js 文件,那么甚至可以从其他的页面中调用)。建议将函数在页面起始位置定义,即  部分。JavaScript函数相对其他语言来说有很大不同。JavaScript函数既可以作为参数,也可以作为返回值。此外JavaScript函数可以接受任意数量的参数,并且可以通过arguments对象来访问这些参数。
创建函数的语法:

function 函数名() { 代码... }

function 函数名(var1,var2,...,varX) { 代码... }

5.变量

JavaScript 是一种弱类型的语言,因此变量的类型由赋值号右边的数据所决定。

JavaScript 变量名称的规则:

应该起一些具有意义的,描述性的,让人望文生义的变量名
变量对大小写敏感(y 和 Y 是两个不同的变量)【JavaScript 对大小写敏感】
变量必须以字母或下划线开始
变量名不能使用系统的关键字或保留字

类型分为两种:基本类型和引用类型

基本类型:是前面提到的5种基本数据类型,在内存中占据实际大小的空间,赋值的时候,会在内存中创建一份新的副本。保存在栈内存中。 

引用类型:是前面提到的Object以及基于它的其他复杂数据类型,指向对象的指针而不是对象本身,赋值的时候,只是创建了一个新的指针指向对象。保存在堆内存中。

JavaScript 变量的生存期

当在函数内声明了一个变量后,就只能在该函数中访问该变量。当退出该函数后,这个变量会被撤销。这种变量称为本地变量。你可以在不同的函数中使用名称相同的本地变量,这是因为只有声明过变量的函数能够识别其中的每个变量。

如果您在函数之外声明了一个变量,则页面上的所有函数都可以访问该变量。这些变量的生存期从声明它们之后开始,在页面关闭时结束。

6. 消息框

三种消息框:警告框、确认框、提示框

alert("文本");警告框经常用于确保用户可以得到某些信息。当警告框出现后,用户需要点击确定按钮才能继续进行操作。

confirm("文本");确认框用于使用户可以验证或者接受某些信息。当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。

prompt("文本","默认值");提示框经常用于提示用户在进入页面前输入某个值。当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。

7. 事件

事件是可以被 JavaScript 侦测到的行为。JavaScript 使我们有能力创建动态页面。事件是可以被 JavaScript 侦测到的行为。网页中的每个元素都可以产生某些可以触发 JavaScript 函数的事件。比方说,我们可以在用户点击某按钮时产生一个 onClick 事件来触发某个函数。事件在 HTML 页面中定义。

事件举例:
鼠标点击
页面或图像载入
鼠标悬浮于页面的某个热点之上
在表单中选取输入框
确认表单
键盘按键
注意:事件通常与函数配合使用,当事件发生时函数才会执行。

onload 和 onUnload
当用户进入或离开页面时就会触发 onload 和 onUnload 事件。onload 事件常用来检测访问者的浏览器类型和版本,然后根据这些信息载入特定版本的网页。onload 和 onUnload 事件也常被用来处理用户进入或离开页面时所建立的 cookies。例如,当某用户第一次进入页面时,你可以使用消息框来询问用户的姓名。姓名会保存在 cookie 中。当用户再次进入这个页面时,你可以使用另一个消息框来和这个用户打招呼:"Welcome John Doe!"。

onFocus, onBlur 和 onChange
通常相互配合用来验证表单。下面是一个使用 onChange 事件的例子。用户一旦改变了域的内容,checkEmail() 函数就会被调用。

onSubmit
用于在提交表单之前验证所有的表单域。

onMouseOver 和 onMouseOut
用来创建“动态的”按钮。

8.try...catch语句

有两种在网页中捕获错误的方法:
使用 try...catch 语句。(在 IE5+、Mozilla 1.0、和 Netscape 6 中可用)
使用 onerror 事件。这是用于捕获错误的老式方法。(Netscape 3 以后的版本可用)
注意:chrome、opera 和 safari 浏览器不支持 onerror 事件。【不建议使用此方式】

9.Throw 声明

throw 声明的作用是创建 exception(异常)。你可以把这个声明与 try...catch 声明配合使用,以达到控制程序流并产生精确错误消息的目的。

10.特殊字符

 JavaScript 中使用反斜杠来向文本字符串添加特殊字符。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容

  • JS简介 外部JavaScript中文件的文件扩展名为.js,如果使用外部文件,那么标签需要设置它的src属性为文...
    Grape_葡萄阅读 905评论 1 6
  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock阅读 3,369评论 2 36
  • 朋友我当你一秒朋友 朋友我当你一世朋友 奇怪过去再不堪回首 怀缅时时其实还有 朋友你试过将我营救 朋友你试过把我批...
    若是不见阅读 225评论 0 0
  • 阿狗瘦了,再见到他时,已经是五六年之后,瘦的脱了“人形”。 阿狗是我大学室友,本身自然不叫阿狗,刚开始阿狗...
    张菽染阅读 531评论 2 5