07001 PHP学习第七天js入门总结 – 恵玩科技

js基本语法介绍

  • js语言是写在<script>这个标签之间。
  • js语言是以“语句行”为单位的,每行(每条)语句需要用分号结束;
  • js语言的注释为:
    1. 两个斜杠: //这是单行注释内容,
    2. /* 这是多行注释内容  */
  • js语言区分大小写。

 

变量:

变量就是一个内存区块的名字。该区块可以存储我们的“东西”(内容)——数据。

变量几乎是“无穷无尽”——从手写的角度来说,可以定义任意多个变量。

一个变量里面只能存一个数据

 

变量定义的标准形式:

var  变量名;

——变量名应该遵循我们的命名规则:

  • 以字母或下划线开头,
  • 后面可以跟若干个字母,数字和下划线。

变量赋值的标准形式:

变量名 =  某个值;

——赋值就是将一个值放到一个变量所代表的内存空间中。

变量定义和赋值常常使用如下复合形式:

var 变量名 =  某个值;

举例:

var i = 3;

var j = 4;

var s = i + j;       //此时s是定义的同时也赋值,且其值是两个变量想加的结果。

 

firebug工具使用:

下面的单词要求记下:

SyntaxError: illegal character

语法错误:非法的 字符.

 

数据类型

3种基本数据类型

数字型(number):表示一个数字,比如3, 2.7, 1.342e6——数字几乎是无穷无尽的

var v1 = 3;

var v2 = 2.7;

字符型(string)   :表示一个字符,形式上要使用引号(单引号或双引号都行)引起来。字符串也几乎是无穷无尽的。比如:

“abc”,  “传智播客”  ‘def’              “12345”   “3+4=7”   “var i=3”

var v1 = “abc”;

var v2 = ‘12345’;

布尔型(boolean):表示一个“真假”的结果,只有两个可用的值:true,false

var v1 = true;

var v2 = false;

2种特殊类型

空类型(null) 表示一个变量中的值是“没有”——此类型只有一个值null

var s = null;

未定义类型(undefined) : 表示一个变量的值没有定义(即没有给值)——此类型也只有一个值undefined

var s ;                          //此时s的类型就是undefined,且其值也是undefined

 

2种复合类型:

数组:多个数据的有序排列而成的一个整体。

var s = [ 3,  2.2,  “abc”,  true  ];

对象:多个数据的所组成的一个整体

var s = { a:3,  b:2.2,  k:”abc”,  mm:true }

 

传值方式:

赋值传值:也叫 拷贝传值,值传递。其含义是:将有个变量的值拷贝一份,然后放入另一个变量中。此时,两个变量是互相独立的,没有任何直接关联。

——对js,基本数据类型(和2个特殊类型)使用值传递

 

引用传值:也叫地址传值,引用传递。其含义是:将一个变量的地址拷贝一份,然后让人另一个变量中。实际上,此时这两个变量对对应了一个实际的“对象”

——对js,符合数据类型使用引用传递

 

算术运算符

+   –   *    /    %    ++   —

%:  取模运算,也可以叫做求余运算——求两个整数相除之后的余数。注意:只对整数有效。

var s1 = 7 % 2;          //结果是1

var s2 = 11 % 3;                 //2

var s3 = 15 % 5;              //0

++:  自加运算符。该运算符称为“单目运算符”,即只要一个变量就可以运算,其含义是:对该变量“自增1”,同样只针对整数。

var  s = 5;

s++;           //此时s为6

s++;           //此时s为7

++s;           //此时s为8;——即这个运算符可以放在变量前或后。

 

例:

//++:自加运算符

var v1 = 1;

v1++;        //此时v1的值成为了2

++v1;        //此时v1的值变为3

//对于独立使用 的“++”运算符,其实对该变量没有任何区别。

 

//但,对于在赋值语句中使用的“++”运算符,则写在变量前和后会对其他被赋值的变量产生影响,如下:

var v2 = v1++;           //此时:v1为4,v2为3:这里,“++”符号写在变量后,则会先进行赋值运算,再自加运算。

var v3 = ++v1;           //此时:v1为5,v3为5:这里,“++”符号写在变量前,则会先进行自加运算,再赋值运算。

 

–:  “自减运算”,除了自减含义之外,其他均跟自加运算符相同。

 

字符串运算符

理论上的字符串运算符只有1个,那就是加号“+”。其含义是:将两个字符串“串连起来”成为一个新的“更长”的字符串。

这里要跟算术运算符“+”相区分:

在加号“+”的任意一边只要有个一个是字符串,则该符号就是字符串想加了(如果另一个不是字符串,则会自动转换为字符串后再相连接)

var v1 = 1;

var v2 = 2.2;

var v3 = “3.3”;

var s1,  s2,  s3, s4;

s1 = v1 + v2;     //3.2

s2 = v1 + v3;     //“13.3”

衍生出的字符串运算符:

+=   其含义是:对某字符串自身加上指定的新的内容。

var s = “abc”;

s += “def”;                 //”abcdef”, 相当于 s = s + “def”

比较运算符

用于比较两个数据(变量)的大小关系,有:

>    >=   <   <=    ==(等于)      !=(不等于)   ===(全等于)   !==(不全等于)

比较运算符运算的结果只有两个情况: true,   false

var v1 = 5;

var v2 = 6;

var v3 = v1 > v2;       //false;

var v4 = v2 > v1;       //true

var v5 = v1 < v2;       //true

var v6 = v2 <= v1;     //false;

实际应用中,其实常常类似这样:

if(v1 > v2) {

…………………………………..

}

else

{

…………………………….

}

 

逻辑运算符

逻辑运算符只针对布尔值进行运算,运算的结果还是布尔值。

逻辑运算符有3个:

与运算: 符号: &&

var b1 = true;

var b2 = false;

var b3 = b1 && b2;           //…….这里最终只有4种情况,2个结论

与运算的真值表:(概况了所有可能的与运算)

   b1 &&  b2 b1 = true  b1 = false
b2 = true b1 && b2; è true b1 && b2; è false
b2 = false b1 && b2; è false b1 && b2; è false

 

逻辑与运算的图示:

可见,逻辑与运算的原理是串连电路原理。

 

逻辑或运算符:  符号  ||

含义:两个条件只要有一个满足,结果就是满足(true)

或运算的真值表:(概况了所有可能的或运算)

  b1 || b2 b1 = true  b1 = false
b2 = true b1 || b2; è true b1 || b2; è true
b2 = false b1 || b2; è true b1 || b2; è false

 

或运算的示意图(原理是并联电路):

逻辑非运算符: 符号: !

含义: 取相反值。 类似数学上的负号(-)

var  v1 = true;

var v2 = !v1;     //v2此时是false

var  v3  = !v2;       //此时 v3为true

 

位运算符:

基本要求;位运算是只针对整数的二进制而进行的。

数值 二进制表示(只讨论8个位即一个字节的情况)
v1 = 1 0 0 0 0 0 0 0 1
v2 = 3 0 0 0 0 0 0 1 1
v3 = 7 0 0 0 0 0 1 1 1
v4 = 12 0 0 0 0 1 1 0 0

v4 = 12 = 8 + 4 = 1000(2)  + 100(2) = 1100(2);

v5 = 87 = 64 + 23 = 64 + 16 + 4 + 2 + 1 = 1000000(2) + 10000(2) + 100(2) + 10(2) + 1(2) = 1010111

 

按位左移运算:  符号:  <<

含义:将数据的二进制表示形式上的每一个位上的数字往左边移动指定的位数,右边空出部分补0,左边冒出部分不管。

格式: 数据  <<  位数;

举例:

var v4 = 12;

var s1 = v4 << 2;

图示运算原理:

数值 二进制表示(只讨论8个位即一个字节的情况)
v4 = 12 0 0 0 0 1 1 0 0
s1 = v4 << 2 0 0 1 1 0 0 0 0
s1 = 32+16 = 48 0 0 25è32 24è16 0 0 0 0
s2 = v4 >> 2 0 0 0 0 0 0 1 1

按位右移运算:  符号:  >>

含义:将数据的二进制表示形式上的每一个位上的数字往右边移动指定的位数,左边空出部分补0,右边冒出部分不管。

格式: 数据  <<  位数;

 

实际上,左移运算就是“乘2”运算,左移几位就乘几次2

左移运算就是“除2”运算,右移几位就除几次2

 

位运算的其他运算符:

按位与:  符号 &

含义:两个数对应二进制位上的数字(0或1)进行位与运算(1&1=>1,1&0=>0,0&1=>0,0&0=>0).结果值为每一位运算结果后的所有数字结果。

 

数值 二进制表示(只讨论8个位即一个字节的情况)
v4 = 12 0 0 0 0 1 1 0 0
v5 = 9 0 0 0 0 1 0 0 1
s1 = v4 & v5

è 8

0 0 0 0 1 0 0 0
                 

 

按位或: 符号: |

含义:两个数对应二进制位上的数字(0或1)进行位或运算(1|1=>1,1|0=>1,0|1=>1,0|0=>0).结果值为每一位运算结果后的所有数字结果。

按位非:  ~

 

按位异或: ^

 

运算符的优先级:

运算表达式中的小括号的作用:跟数学上完全一致,就表示“优先运算”,例:

var s = (-b + b*b – 4*(a+3)*c ) / (2*a*c)

对运算符的优先级,我们需要记住以下几条规则:

  • 要意识到运算符有先后顺序问题(正如数学上的运算符优先)
  • 括号最优先
  • 赋值最落后。
  • 先乘除后加减
打赏作者