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

程序设计基础

1.数据类型与变量

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

 

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

 

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

 

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

 

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

   

数值:number

字符串:string

布尔类型:boolean

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

typeof()  数据的类型

 

为什么要有数据类型?

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

数值类型的表现形式:

十进制:233.14

八进制:023;(19

十六进制:0x23;(35

科学计数法:3e22x102;3.5e-23.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。例如:计算56的与运算

5101

6110

结果:100

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

 

或:

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

5101

6110

结果: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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值