程序设计基础
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