JS

js介绍与基本语法

netscape浏览器发展之初,为了解决一些使用体验的问题,在其中又内嵌了一个脚本语言——livescript

傍上了java这个独领风骚,改名为javascript——ecmascript(其实是一个标准)——jscript(微软的产品)——actionscript(adobe公司,flash中应用)

注释:

//单行注释

/*多行注释*/

一条语句使用一个分号结束;

严格区分大小写;

firebug的使用

变量:

现实世界有各种各样的数据——人名,年龄,学历,学生数,php的学费,北京的人口,。。。。

软件就是用来描述现实世界的。

在软件中,我们使用编程语言来实现“现实世界的模拟运行”

在程序中,我们使用一种称为“变量”的符号来表示现实世界的“数据”

这些符号我们基本上都是自己去定义其名字——这就是变量名——简称为变量。

a=1; //用a这个“符号”来代表现实世界的数学领域的一个数字“1”。

变量在计算机中,也可以看做是一个临时存放数据的“内存空间”——

变量是一个符号,我们用此符号来在内存的“小格子”中“存取数据”。

定义变量的标准形式为:

var 变量名; //这表示让计算机给你一块“空间”来供你使用,这块空间的名字是你自己取。

//var就是定义变量的关键字

往变量(或其所代表的空间)中存入数据的形式为:

变量名 = 数据值; //此数据值可以是直接数据,也可以是计算结果的数据,比如1+2

实际常见的情形是:定义变量的时候同时赋值,则其语法是:

var  变量名 = 数据值; //此时其实可以省略var这个关键字

//后面在使用该变量的时候就不要再写var了。举例:

var i = 10;  //将10这个数据装到i这个变量所代表的空间中去,此时i中数据就是10

var k = 20;

var s = i + k;

i = i + i; //特别注意:这里的等号不是数学上的等号,而是叫做“赋值”:将等号右边的“数据值”放到等号左边的变量中去。此时相当于将(10+10)的结果值(20)装入i这个变量所代表的空间(格子,抽屉,箱子)中去,则此时i中原来的值(10)就没有了——重要观念一个变量只能装(存储)一个数据!

数据类型:

变量:

现实世界有各种各样的数据——人名,年龄,学历,学生数,php的学费,北京的人口,。。。。

软件就是用来描述现实世界的。

在软件中,我们使用编程语言来实现“现实世界的模拟运行”

在程序中,我们使用一种称为“变量”的符号来表示现实世界的“数据”

这些符号我们基本上都是自己去定义其名字——这就是变量名——简称为变量。

a=1; //用a这个“符号”来代表现实世界的数学领域的一个数字“1”。

变量在计算机中,也可以看做是一个临时存放数据的“内存空间”——

变量是一个符号,我们用此符号来在内存的“小格子”中“存取数据”。

定义变量的标准形式为:

var 变量名; //这表示让计算机给你一块“空间”来供你使用,这块空间的名字是你自己取。

//var就是定义变量的关键字

往变量(或其所代表的空间)中存入数据的形式为:

变量名 = 数据值; //此数据值可以是直接数据,也可以是计算结果的数据,比如1+2

实际常见的情形是:定义变量的时候同时赋值,则其语法是:

var  变量名 = 数据值; //此时其实可以省略var这个关键字

//后面在使用该变量的时候就不要再写var了。举例:

var i = 10;  //将10这个数据装到i这个变量所代表的空间中去,此时i中数据就是10

var k = 20;

var s = i + k;

i = i + i; //特别注意:这里的等号不是数学上的等号,而是叫做“赋值”:将等号右边的“数据值”放到等号左边的变量中去。此时相当于将(10+10)的结果值(20)装入i这个变量所代表的空间(格子,抽屉,箱子)中去,则此时i中原来的值(10)就没有了——重要观念一个变量只能装(存储)一个数据!

数据类型:

var  a = 10; //数字数据值

var  b = “abc”; //字符串数据值

var  c = “123”; //字符串数据值

甲:某乙,你吃早饭了吗?

乙:吃了//是//确定// —— 也可能表示否定的回答:没有吃//没有//

——表示“真假”数据

甲:你吃什么了?

已:包子

——表示“字符”数据

甲:吃了几个?

乙:12个

——表示“数字”数据

甲:。。。。

已:你有完没完?。。。

描述现实世界,就这3种基本数据类型:

boolean类型: 布尔类型,此类型表示一个“真假”状态,其数据只有两个:true,false

举例: var v1 = true;

var v2 = false;

string类型: 字符(串),此类型表示一个“连续的字符”,形式是使用单引号或双引号引起来

举例: var  v3 = “abcde”;

var  v4 = “12345”;

var  v5 = ‘北京’;

var  v6 = ‘北京是个充满梦想的城市’;

var  v7 = “a”;

var  v8 = “”;

其数据无穷无尽。。。。。

number类型: 数字类型,表示一个数学意义上的数字,可以是整数或小数

举例: var s1 = 1;

var s2 = 22.2;

var s3 = 33.3e3; //这是科学计数法,含义是33.3乘以10的3次方

其数据无穷无尽。。。。。

但在计算机世界中,还有其他表示数据的形式上或含义上的类型,有如下:

特殊数据类型:

null类型: 空类型,表示一个变量中的数据是“空”的,即没有任何有效数据,它跟空字符串是不一样。这只是计算机中为了表示“空值”这种状态而“生造”的一个类型,该类型只有一个数据:null

undefined类型:未定义类型,表示一个变量的数据还没有“定义”,即没有给值。该类型也只有一个值:undefined.

以上两种数据类型不常用,也不推荐“主动使用”,他们只是软件(语言)中表示某个特殊情形的含义上的类型——他们通常在我们程序出错的时候会主动找我们

复合类型:

数组类型:将多个数据放在一起以有序的方式排列成一个整体,此整体就被称为数组类型

var a1 = [1,  2.2,  “abc”,  true,  “中国” ]; //a1就是一个变量名(这里也是数组名)

对象类型:将多个数据放在一起组成一个整体,此整体就被称为对象类型

var  obj = { a:1,  b: 2.2,  cc: “abc”,  vvm: true,  s:”中国” };

//obj也是一个变量名,这里也可以说是一个对象名,其中大括号中的a,b,cc等等是这个对象中的各个数据(1,2.2, “abc”)的名字。

基本命名规则

声明:此命名规则基本上适用以下各种情形(但不限于这些情形):

js中的:变量名,函数名,

php中:变量名,函数名,类名

html中: name名,id名,  class名

规则如下:

1, 只能使用字母,数字,下划线这几种字符

2, 只能使用字母或下划线开头

3, 第一个字符之后可以跟0个以上的其他字符。

4, 不能使用系统中的关键字,比如alert,document, window,  if,  else ….

算术运算符:

加: +

减: -

乘: *

除: / 注意:这个除号基本上跟我们数学上的除法一样,而跟c语言中的“/”号不同。

var  v1 = 6 / 2; //3;

var  v2 = 6 / 8; //0.75; //c语言中是0。这里不是。

var  v3 = 9 / 2; //4.5; //c语言中是4

取余(取模):  %:  只用于整数数据,表示一个数除以另一数之后的余数,举例:

var v1 = 12 % 5; //结构是2

var v2 = 12 % 6; //0

var v3 = 12 % 7; //5

还有两个: 自增运算(++), 自减运算(--):

++运算符是对“自身”变量进行一个自加操作,可以写在变量的前面,也可以写在变量后面。如果自加运算(++)出现在赋值运算(=)的右边中,那么此时相当于需要做两个运算:自加和赋值,则自加符号的位置就会对赋值的结果又影响:

++在变量后: 先赋值,后自加。

++在变量前: 先自加,后赋值。

自减运算(――)是对变量自身减一,其规则同自加运算符。

比较运算符:

> :大于

<  :小于

>= :大于等于

<= :小于等于

== :等于

!= :不等于

=== :严格等于:只有数据和内容都完全一样的时候才成立(相等)

!== :不严格等于:只要数据和内容有一点点不一样,都算“不严格相等”

比较运算符其实就是比较两个数据(通常是数字,也可以是其他,比如字符串)的大小关系,如果关系成立,则这些运算符的运算结果就是“true”这个布尔变量,否则就是“false”这个布尔变量。

var a =5;

var b = 10;

var c = a > b; //结果c是 false ,是布尔类型值

var d = a < b; //结果d是true;

var e = a >= 5; //true

var f = a <= 5; //true

var g = a == 5; //true, 要理解为:“a等于5”的比较结果是true,然后把true赋值给g

var h = 5>a; //false;

但,通常,大多数时候,其实比较运算符并不是在这种场合使用,而是在判断语句中使用,比如:

if( a > b){…..}

if ( a >= 5 ) {…..}

一种特殊情况的比较:

var  v1 = 1;

var  v2 = “1”;

if(v1 == v2 ){…} //此时是成立的——结果是true,也就是if后面的语句可以执行

if(v1 === v2){….} //此时是不成立的——结果是false,也就是if后面的语句不会执行

两种“相等”的辨析:

==:  通常被称为是“模糊相等”(数据内容相等),只要两个数据“看起来”相等,就会成立

===:  通常被称为“严格相等”,只有两个数据的数据内容和数据类型都一样的时候才成立。

字符串运算符

字符出只有一种运算: 连接运算,就是将两个字符串“串联在一起”,成为一个“更长的字符串”,其运算符是: +

那么此时,怎么去区分一个加号(+)到底是算术运算的“加法”还是字符串运算“连接”呢?

——区分放很简单: + 两边只要有一个是字符串,就么就必然使用字符串连接运算。如果另一边不是字符串,也会自动将其转换为字符串之后再连接运算。

var v1 = 1 + 2; //3;

var v2 = “ab” + “cd”; //”abcd”;

var v2a = “ab” + “cd” + “efg”; //”abcdefg”

var v3 = “ab” + 2; //”ab2”

var v4 = 2 + “ab”; //”2ab”;

var v5 = 1 + “2”; //”12”

var v6 = “1” + “2” + “3”; //”123”

var v7 = 1 + 2 + “3”; //”33”;

var v8 = 1 + “2” + 3; //”123”

document.write(v8); //输出”123”

document.write(1 + “2” + 3); //输出”123” //这里要理解为:先将括号中的运算做完,在输出此结果

逻辑运算符

首先,要先建立一个观念:

逻辑运算符只对两个数据进行运算:true,false,只有3个运算符(&&, || !)。

第一个:逻辑与运算:   

  符号: &&     

含义: 表示两个条件进行“并列”判断,如果两个条件都成立,则表示运算结果是成立的。               

条件1:穿白衣服的举手:             

条件2:穿白鞋子的举手:             

  找出:既穿白衣服又穿白鞋子的同学,举手。     

细化:算来算去,其实只有4个可能情况:             

true && true      ètrue           

true && false    èfalse             

false && true    èfalse             

false && false    èfalse     

  总结一句话:逻辑与运算,只有两个运算数据都是true的时候,结果才是true 

第二个或运算:       

符号:||       

含义:表示两个条件中只有有一个条件满足,就会满足(结果就成立)

        总结一句话:逻辑或运算,只要两个运算数据由一个是true的时候,结果就true

第三个:非运算:       

符号:!       

含义:取一个布尔值的“相反情况”,         

举例:               

var v1 = true;             

var v2 = !v1;  //v2为false,注意,此时v1还是true,并没有变。       

  var v3 = !v2;    //v3为true,此时v2也还是false   

昨日回顾

变量:

变量的含义:就是用于表示一个数据的代号——我们自己定义的一个名字。

变量的定义:var  v1;  var  v2 = 2;  var v3, v4, v5;  var  v6, v7=7,  v8,  v9=”abc”;

变量的使用:

赋值:v1 = 1;  v1 = 1+2+3;  v1 = v2 + “abc”;  v1 = v1 + 5;  v1 = v1 + v1;

取值:m1 = v1; //将v1的值取到,再赋值给m1

m2 = v1 + 5; //将v1的值取到,再跟5相加,然后赋值给m2

alert( v1 ); //将v1的值取到,并交给alert去“弹出”

document.write( v1 ); //将v1的值取到,并交给document.write去“输出”

alert( “v1=” + v1); //取到v1的值,并和字符串“v1=”进行连接运算,然后结果被alert。

document.write( “v1=” + v1);

数据类型:

基本类型:

布尔类型: boolean;  这种类型只有两个值可用: true,  false

字符串类型: string; 可以用单引号或双引号表示,含义相同;

数字类型: number

复合类型:

数组: Array, 

对象: Object

特殊类型:

null:空类型——可以给一个变量明确赋值为“null”,这就是空值,也是空类型,只是表示一个“含义”:该变量没有给有效值。

undefined: 未定义:此类型通常就是对应“根本就还没有给值”这种状态。

算术运算符: +  -   *   /   %

注意点:

1, 除法(/)就是数学上的自然除,而不是C语言的除法含义。

2, ++ 和 --  称为一元运算符,即只针对一个变量进行运算

3, 但 ++  和 – 可以在表达式(比如赋值语句)中使用,则类似同时进行了2件事:自加(或自减)和表达式本身的计算,此时他们放在变量的前面和后面有不同含义。

a) var i = 1;  var s1 = i++; //结果是:s1为1,i为2

b) var i = 1;   var s2 = ++i; //结果是:s2为2,i为2

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

比较运算符用于数据的大小比较,通常是数字。其中值得注意的是:

==被称为“模糊相等”,即数据的内容或经过转换后的内容相等,就认为是相等。

===称为“严格相等”,只有数据的类型和数据的内容都相等的时候才算是相等。

——从计算机的角度来说,一个数据具有两个方面:数据类型和数据值(数据内容)

逻辑运算符:只用于对bool值进行运算。

逻辑与(  &&  ):两个数据只有都是true的时候,结果才是true

逻辑或(  ||  ):两个数据只要有一个是true,结果就是true

逻辑非(  !  ):获取一个bool值的“相反值”

字符串运算符:

只有一个连接运算符( +  ): 含义是“连接两个字符串”

辨析算术运算符的加法( + ): 

此加号( + )两个的数据只要有一个是字符串,则都会按字符串的“连接”含义进行运算,另一如果不是字符串,则会自动转换为字符串后再进行连接运算。

你可能感兴趣的:(JS)