您的位置:首页 > Web前端 > JavaScript

JS程序设计基础:变量,算术、关系、赋值、复合赋值、逻辑、位运算符与表达式

2017-07-25 20:05 537 查看
程序设计基础
1.数据类型与变量

计算机程序就是去处理现实中的各种数据

 



数据的几个属性:名称、值、类型

 



名称是月销量,值是47,数值

 



名称是大小,值是“190x100mm”,字符串

 



名称是是否包邮,值是“是”,布尔类型

   

数值:number

字符串:string


布尔类型:boolean


alert()  警告提示框(打印)

typeof()  数据的类型

 

为什么要有数据类型?

生活中是存在不同的数据类型的,计算机要解决生活问题,那么它就和生活中的数据类型产生了映射,所以有了数据类型。

数值类型的表现形式:

十进制:23,3.14;

八进制:023;(19)

十六进制:0x23;(35)

科学计数法:3e2(2x102);3.5e-2(3.5x10-2)

 

为什么要有变量?

因为生活中一些数据不是一成不变的,它的值会改变,所以JS里面有了变量和它的相对应。

变量:var

var
name =
"张三";


var  variable的缩写变量的意思。声明一个变量。

 变量名:

name 变量名

命名的规则:

1.关键词不能用

var
var =
"张三;


   2.一般情况下,只用英文开头,也可以是$和_,但是不建议使用

        3.不能用数字开头,因为和8进制、26进制会产生冲突

var
1name
= "张三";


命名的原则:见名思义。

规范:

(1)尽量使用英文单词或者组合,或者专业名词

weight color

filename(驼峰命名法)

(2)尽量不要使用拼音

weight1
= "中等";
weightl =
123;
alert(weight1);


此处输出不是预期的123,而是“中等”,原因是两个拼写不同,而且不会报错。

 



如果使用严格模式,明显可以看到第二个变量拼写错误。

变量的值:

变量的类型是由变量的值来决定的。

系统会为不同的类型分配不同的大小来存储数据。

如果是布尔类型就分配一个字节的大小来存储

如果是数字和字符串类型,那么根据他的大小和长度来分配字节数来存储。

JS是弱类型语言,所有的类型的变量都用var来声明。

JS是动态类型的语言,变量的类型会根据值的变化而变化,不会出错。

变量就是一个内存单元。

var
weight =
65;


weight
= weight -
5;







用本质解释var
weight =
65;:


把名字为weight的内存单元的值65取出来,再和5进行减法运算,然后把得到的结果再放回到名字为weight的内存单元中。

 

JS语言特点:

更加高级,不严谨。
weight =
“中等”;
alert(weight);


变量不用声明就可以用。

使用严谨的格式,就必须先定义变量才能使用变量。

"use strict"
var weight
= “中等”;
alert(weight);


name 这个名字是特殊的,使用name来给变量起名字时,它不会报错。

 

2.对象类型

对象在JS中对应的是object

定义一个对象:

var
dog = {name:"藏藏",type:"藏獒",color:"花色",sex:"雄",age:3,marry:false};


使用new object()定义一个对象类型的变量:

var
dog =
new object();
dog.name
= "藏藏";
dog.age
= 3;
dog.marry
= false;


为什么要有对象?

和为什么有数据类型是一样的。就是生活中处处都是对象,所以JS中有这种对象类型

如何使用对象里面的属性?

使用对象名+对象属性名

alert(typeof
(dog));
alert(typeof
(dog.name));
alert(typeof
(dog.age));
alert(typeof
(dog.marry));


 

3.算术运算符与表达式

常见的算术运算符有
+  -  × ÷


对应在JS中的运算符 +  -  *  /

加法运算:(数值)

var
weight =
65;
weight = weight
+ 10;
alert(weight);


 

字符串拼接:(字符串)

var
dogName =
"zhangsan";
dogName = dogName
+ "feng";
alert(dogName);


 

乘法运算:(数值)

var
weight =
65;
weight = weight
* 10;
alert(weight);


 

减法运算:(数值)

var
weight =
65;
weight = weight
- 10;
alert(weight);


 

除法运算:(数值)

var
weight =
65;
weight = weight
/ 10;
alert(weight);


 

取余运算符在JS中用%表示。作用:得到两个数的余数

var
num1 =
10;
var num2
= 3;
var result
= num1 % num2;
alert(result);


使用技巧:可以解决周期性问题。

var
date =
2;/*计算12天后是星期几*/
date = date
+ 12 %
7;


++自增1

num++。等价于num=num + 1;

本身是可以不存在,使用基本运算就能代替。它存在的唯一价值就是简单,便捷。

num++和++num的区别:

a = num++;

a = ++num

num++是先用后加:

var
num1 =
1;
alert(num1++);


等价于:

alert(num1);
num1 = num1
+ 1;


 

++num是先加后用:

var
num1 =
1;
alert(++num1);


等价于:

var
num1 =
1;
num1 = num1
+ 1;
alert(num1);


 

4.赋值运算符与表达式

将一个数据赋值给一个变量。

赋值运算是表示将一个数据存储到某个内存单元中(变量)

var
name =
10;


复合赋值运算符:

num
= num +
1;
num +=
1;//两者完全等价


+=可以不存在,完全由普通运算符取代,存在的唯一价值就是简洁方便。

-=

var
num =
10;
num -=
10;
alert(num);


*=

var
num =
10;
num *=
10;
alert(num);


/=

var
num =
10;
num /=
10;
alert(num);


%=

var
num =
10;
num %=
10;
alert(num);


注:如果不理解这个复合赋值运算符,那么就不要用,直接用普通运算符。

 

 

5.关系运算符与表达式

生活中常见的关系运算符:

大于  小于  等于  大于等于  小于等于  不等于

>     <     ==    >=       <=       !=

判断两个数是否相等:使用两个=,与生活中常识不符合;

如何避免判断两个数相等时出错:把常量放在等式前面,
变量放在等式后面。


绝对相等:

变量的值和类型都相等,使用===来表示。

绝对不相等:

变量的值和类型都不相等,使用!==来表示。

var
num1 =
2;
var num2
= "2";
alert(num1
!== num2);


 



对比不相等:

var
num =
2;
var str
= "2";
alert(num
!= str);


 



 

6.逻辑运算符与表达式

与:两者同时成立结果才成立。

第一个关系是true
第二个关系也是true
那么结果才是true;


如果有一个或多个为false是,结果为false。

在JS中用&&表示

var
num1 =
10;
var num2
= 20;
alert(num1
< 20 && num2
> 10);


显示结果:





 

或:至少有一个成立,那么结果成立。

就是一个关系为true那么结果就为true。

在JS中用||来表示

var
num1 =
10;
var num2
= 20;
alert(num1
> 20 || num2
< 10);


显示结果:

 



非:结果为原身的对立面,就是当关系成立时,非之后就变为不成立。

非true之后结果变为false。

在JS中用!表示

var
num =
10;
alert(!(num
>10));


显示结果:

 



7.位运算符与表达式

如何得到一个数的二进制?

var
num =
5;
//101
alert(num.toString(2));


同理得到一个数其他进制数,改变.toString里面的值

与:

首先要把数转化为二进制数

运算法则,只有两者同时为1是结果才为1,其余结果均为0

按位运算,不足的在二进制前补0。例如:计算5和6的与运算

5:101

6:110

结果:100

var
num1 =
5;
var num2
= 6;
alert(num1.toString(2) &
num2.toString(2));


 



或:

两个数有一个为1,那么结果就为1然后按位运算

5:101

6:110

结果:111

var
num1 =
5;
var num2
= 6;
alert(num1.toString(2) |
num2.toString(2));


 



异或:

两个值相同时结果同时为0,两个值不同时结果为1.

var
num1 =
5;
var num2
= 6;
alert(num1.toString(2) ^ num2.toString(2));


 



按位与运算的作用:

(1)测试某一位是0还是1;

1100010000101011

0000000000001000

(2)设置某一位为0;

1100010000101011

1111111111110111

X&1 = X(X表示一位二进制,可能是0或者1)

X&0 = 0

 

按位或运算的作用:设置某些位为1

1100010000101011

0000000000010000

X|0 = X

X|1 = 1

 

按位异或运算的作用:

X^1 = X(反)

X^0 = X
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐