《JavaScript DOM编程艺术》——javascript基础语法

1、JavaScript有两种方式使文档进行执行。

(1)将JavaScript代码放在HTML文档的<head>标签的<script>
(2)更好的一种方法是新建一个扩展名为.js的独立文件,放在一个<script>标签里
语法:<script src="file.js"></script>

建议将<script>标签放在HTML文档的最后,</body>标签之前。

2、语法

2、1语句

建议在每条语句的末尾加上一个分号。

2、2注释

//用两条斜线开头,则将这一行定义为注释。
对于javascript文件中"<!--"和"//"的处理是一样的
/*多行注释的格式*/

2、3变量

把值存入变量的操作称为赋值
对变量声明的示例:

var mood;var age;
var mood="happy", age=33;```
在javascript中语法元素的名字都是区分字母大小写的。
不允许变量名中包含空格或标点符号。
允许包含字母、数字、美元符号$和下划线(但第一个字符不允许是数字)
使用驼峰格式,`var myMood="happy";`
*驼峰格式是函数名、方法名和对象属性名的首选格式*
######2、4数据类型
1)字符串
字符串由零个或多个字符构成。包括字母,数字,标点符号和空格。字符串必须在引号里
`var mood="happy";var mood='happy';`
在javascript中用反斜线对字符进行转义
`var mood='don\'t ask';var height="about 5'10\"tall";`
2)数值
有小数的数字为浮点数(floating-point number)
`var age =33.25;`
3)布尔值
布尔(boolean)类型
只有两个可选值:true或false
######2、5数组
 数组是指用一个变量表示一个值的集合集合中的每个值都是这个数组的一个元素。
在JS中用关键字Array声明。
数组的下标是从0开始计数的。
```javascript
var beatles=Array("John","Paul","George","Ringo");
var beatles=["John","Paul"];```
可以用不着明确地表明我们在创建数组,只需要一对方括号把各个元素的初始值括起来。
存放数据的首选方法:将数据保存为对象。
######2、6对象
```javascript
var lennon=object();lennon.name="John";lennon.year=1940;lennon.living=false;```
更加简洁的写法
`var lennon={name:"John",year:1940,};`
####3、操作
>算数操作符
算数操作(arithmetic operation)
操作符(operator)
i=i+1  i++(表示加一)
i--累减

`var message="I am feel"+"happy";`
把多个字符串首尾相连在一起的操作叫做
拼接(concatenation)
      如果把字符串和数值拼接在一起,其结果将是一个更长的**字符串**;但如果用同样的操作符来"拼接"两个数值,其结果将是两个数值的**算术和**
`alert("10"+20);alert(10+20);`
第一条语句返回字符串"1020"
第二条语句返回数值30
+=(加法和赋值操作)x+=y等价于x=x+y
####4、条件语句
if语句
if基本语法
`if(condition){
statements;
}`
条件必须放在if后面的圆括号中,条件的求值结果永远是一个布尔值,**(true或false)**
花括号中的语句,只有在给定条件的求值结果是true的情况下才会执行。
当花括号中的语法只有一句时,可以不使用花括号,而且这条if语句全部内容可以写在同一行上。
```javascript
if(1>2)alert("the world has gone mad!")```
if语句可以有一个else子句,包含在else子句中的语句会在给定条件为假时执行。
```javascriptif
(1>2){alert("the world has gone mad");}else{alert("All is well with the world");}```
######4、1比较操作符
>大于>
小于<
大于或等于>=
小于或等于<=
等于==    
严格比较相等===
不等于!=   
严格不等于!==

*严格比较相等不仅比较值,而且比较变量的类型*
######4、2逻辑操作符
>“逻辑与”操作符:&&
“逻辑或”操作符:||
“逻辑非”操作符:!

逻辑非操作符可以把整个条件语句的结果颠倒过来
```JavaScript
if(!(num>10||num<5)){
alert(“the number is in the right range.”);```
####5循环语句
循环语句可以让我们反复多次的执行同一段代码。
***
#####5、1  while循环
语法
```javascript
while (condition) {
statements;
}```
>while与if的区别是:只要给定条件的求值结果是true,包含在花括号里的代码将反复地执行下去。

**do ...while循环**
```javascript
do{
statements;
}while (condition);```
```javascript
var count=1;
do {
alert (count);
count++;
}while (count <1);```
>由于do循环的循环控制条件出现在花括号部分之后,所以包含在这个do循环内部的代码还是执行了一次。其结果是2

#####5.2   for循环
类似于while循环,与循环有关的所有内容都包含在for语句的圆括号部分
```javascript
for(var count=1;count<11;count++){
alert(count);
}```
>for循环的常见用途之一是对某个数组内的全体元素进行遍历处理。

####6、函数
如果需要多次使用同一代码,可以把它封装成一个函数。函数(function)就是一组允许在你的代码随时调用的语句。每个函数都是一个短小的脚本。
***
函数示例
```javascript
function shout(){
var beatles=Array("John","George","Ringo");
for (var count=0;count<beatles.length;count++){
alert(beatles[count]);
 }
}```
这个函数循环语句将依次弹出对话框来显示Beatles乐队成员的名字。如果想在自己的脚本里随时执行这个动作,可以随时调用`shout();`这个函数。
我们把传递给函数的数据称为**参数**(argument)
在定义函数时,你可以为它声明任意多个参数,只要用逗号把他们分割开来就行,在函数内部你就可以像使用普通变量那样使用它的任何一个参数。
```javascript
function multiply(num1,num2) {
var total=num1*num2;
alert(total);
}```
在定义好的脚本里我们可以在任意位置去调用这个函数。
例如`multiply(10,2);`把数值10和2传递给multiply()函数。
***
如果上例的函数结果能够返回给调用这个函数的语句往往会更有用。
需要用到renturn语句
```javascript
function convertToCelsius(temp){
var result=-32;
result=result/1.8;
return total;
}
//函数只有一个参数(一个华氏温度值),它将返回一个数值(同一温度的摄氏温度值)```
我们可以把函数当做是一种数据类型来使用,可以把函数的调用结果赋给一个变量。
```javascript
var temp_fahrenheit=95;
avr temp_celsius+convertToCelsius(temp_fahrenheit);
alert(temp_celsius);
//变量temp_celsius的值将是35,这个值由converToCelsius函数返回```
- 在命名函数时,我们采用驼峰命名法。
- 在命名变量时,用下划线来分隔每个单词。

####变量的作用域
变量可以是全局的,也可以是局部的。
- 全局变量(global variable)

可以在脚本中的任何位置被引用。一旦你在某个脚本里声明了一个全局变量,就可以在这个脚本中的任何位置(包括函数内部)引用它。全局变量的作用域是整个脚本
- 局部变量

**只存在于声明它的那个函数的内部**该函数外部是无法引用它的,其作用域仅限于某个特定的函数。
可以用var关键字明确的设定作用域。
**在一个函数中**使用了`var`这个变量将被视为一个局部变量,只存在于该函数的上下文中;反之,如果没有使用`var`这个变量将被视为一个全局变量
我们来看下面的例子:
```javascript
function squre(num){
total=num*num;
return total;
}
var total=50;
var number=square(20);
alert(total);
//全局变量total变成了400,本意是让square()函数之把它计算出来的平方值返回给变量number,由于未把函数内部的total变量声明为局部变量这个函数把名字同样是total的那个全局变量的值也改变了。
  • tips
    在定义函数时,我们一定要把它内部的变量全都明确的声明为局部变量。建议在函数里使用var关键字来定义变量,养成良好的编程习惯

对象

对象(object)是自包含的数据集合,包含在对象里的数据可以通过两种形式访问——属性(property)方法(method)
‌- 属性是隶属于某个特定对象的变量;
‌- 方法是只有某个特定对象才能调用的函数。
对象就是由一些属性和方法组合在一起而构成的一个数据实体。
在JavaScript中,属性和方法都使用“点”语法访问

object.property
object.method( )

实例(instance)
为给定对象创建一个新实例需要使用new关键字。

var Jeremy= new person;

内建对象
可以直接拿来就用的对象称为内建对象(native object)
数组就是常见的一种内建对象,还有Math对象和Date对象。

var num = 7.561;
var num =Math.round(num);
alert(num);
Math对象的round方法可以把十进制数值舍入为一个与之最接近的整数

Date对象可以用来存储和检索与特定日期和时间有关的信息。
Date对象提供了getDay( )、getHours( )、getMonth( )等一系列方法,以供人们用来检索与特定日期有关的各种信息。

在编写JavaScript脚本时,内建对象可以帮助我们快速、简单地完成许多任务。

宿主对象
由浏览器提供的预定义对象被称为宿主对象(host object)
宿主对象包括Form、Image、Element等。我们可以通过这些对象获得关于网页上表单,图像和各种表单元素等信息。

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

推荐阅读更多精彩内容