JS程序设计基础2

2.1数据类型与变量

计算机程序就是去处理现实中各种数据
数据:
数据的几种属性:名称、值、类型
JS中的数据:
程序就是对现实中的数据进行加工,所以JS中也必须有相应的数据描述。
(1) 数值型:数值型数据支持多种表示形式
十进制:23,3.14;
八进制:023;(19)
十六进制:0x23(35)
科学计数法:3e2(3×102),3.5e-2(3.5×10-2)

<script>
    alert(1399);
    alert(345)
    alert(023);//八进制
    alert(0x23);//十六进制
    alert(3.5e-2);//科学计数法
</script>

(2)字符串

Typeof() 数据的类型
为什么要有数据类型?
生活中是存在不同的数据类型的,计算机要解决生活问题,那么他就和生活中的数据类型产生了映射,所以有了数据类型。
变量:
变量就是一个内存单元。
Var variable的缩写变量的意思。声明一个变量。

var name = "曹鹏飞";

命名的规则:
1、 可以有字母、数字、下划线和$组成
2、 数字不能开头(?)
3、关键字不能用

命名的原则:见名思义。
规范:
(1)尽量使用英文单词或者组合,或者专业名词
weight color
filename(驼峰命名法)
(2)尽量不要使用拼音
变量的值:
变量的类型是由变量的值来决定的。
系统会为不同的类型分配不同的大小来存储数据。
如果是布尔类型就分配一个字节的大小来存储
如果是数字和字符串,那么根据他的大小和长度来分配字节数来存储。
JS是弱类型语言,所有的类型的变量都用var来声明。
JS是动态类型的语言,变量的类型会根据值的变化而变化,不会出错。
JS语言特点:
更加高级,不严谨。
变量不声明可以直接用。
使用严谨的格式,就必须先定义变量才能使用变量。

2.2对象类型

对象在JS当中对应的是object
定义一个狗的对象

<script>
    var dog = {name:"藏藏",type:"藏獒",color:"花色",
    sex:"雄",age:3,marry:false};
    alert (typeof (dog.age));
</script>

狗:
名字:藏藏
品种:藏獒
颜色:花色
年龄:3
是否婚配:否
使用new Object()定义一个对象类型的变量

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

为什么有对象?
和为什么有数据类型是一样的。生活中处处有对象,所以js中有这种对象类型。
如何使用对象里面的属性?
使用对象名+,+对象属性名

2.3算术运算符与表达式

常见的算术运算符有 + - × ÷
对应在JS当中的运算符+ - * /
运算的的前提条件是:数值
才能进行运算,如果不是数值,加减乘除运算时就会出错。
加法运算:

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

字符串拼接

var dogName = "zhangsan";
dogName = dogName + "feng";

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

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

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

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

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);

2.4赋值运算符与表达式

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

var num = 10;

复合赋值运算符

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

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

2.5关系运算符与表达式

生活中常见的关系运算符
大于 小于 等于 大于等于 小于等于 不等于
 < = >= <= !=
判断两个数是否相等 使用两个=号。与生活常识不符合,如何避免判断两个数相等时出错。就是把常量放在等式的前面
把变量放在等式后面。
绝对相等
变量的值和类型都相等,使用 == 来表示
绝对不相等
变量的值和类型都不相等,使用 !== 来表示

<script>
    var num = 2;
    var str = "2";
    alert(num !== str); 
</script>

对比不相等

<script>
    var num = 2;
    var str = "2";
    alert(num != str);
</script>

2.6逻辑运算符


两者同时成立结果才成立。
第一个关系是true第二个关系也是true那么结果才是true
如果有一个或多个为false时结果为false
在JS当中用两个&&表示

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


至少有一个成立那么结果就为true
在JS中用||来表达

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


结果为原身的对立面,就是当关系成立时,非之后就变为不成立。
非true之后结果为false
在JS中用!来表达

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

2.7位运算符与表达式

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

<script>
    var num = 5;
    //011
    alert(num.toString(2));
</script>

同理得到一个数其他进制数,改变。toString里面的值
与:
首先要把数转化为二进制。
运算法则,只有两者同时为1时结果才为1.其余结果均为0
按位运算

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

或:
两个数有一个是为1

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

异或:
两个值相同时结果为0两个值不同时为1

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

2.8程序设计思维

生活中的程序:
(1)宿舍保修:填写保修单–>上报宿舍管理员–>联系物业–>找维修师傅–>上门维修–>反馈。
(2)银行开户:客户填写开户申请单–>提交证件资料–>审核资料真实性(1.本人、资料真实齐全则通过;2.其他人代办、有委托书、资料真实齐全则通过)–>录入系统开户–>设置密码–>发放卡、存折。
解决生活中问题的步骤(流程)描述。
计算机中的程序:
解决问题的步骤描述,但是是用计算机语言描述


这里写图片描述


编程:
根据业务需要,制定或编制解决问题的流程。编制程序的人应该非常熟悉或者精通业务
如果编制计算机程序的要求:
(1)精通业务
(2)精通计算机语言

学习方向:
(1)解决问题的思路
(2)计算机语言
重点是解决问题的思路,思路与计算机没什么关系。所有虽然我们学习的是JS,但是更多更重要的又并不是JS内容。
难点是思维的转变,也就是说从现在开始,需要站在计算机的角度去思考和描述问题。

案例一:计算一个三位数的各位数字之和,比如415的各位之和就是4+1+5=10。

<script>
    /*解决问题的思路
    * (1)提示用户输入一个三位数
    * (2)接收输入存放于num中
    * (3)计算百位b100,除以100取整
    * (4)计算十位b10,对100求余,除以10取整
    * (5)计算个位b1,对10求余
    * (6)计算b100+b10+b1
    * (7)输出结果*/
    var num = prompt("提示输入一个三位数");
    var b100 = Math.floor(num/100);//math.ceil()上
    var b10 = Math.floor((num%100)/10);
    var b1 = num%10;
    var sum = b100 + b10 + b1;
    alert(sum);
</script>

通过这个案例,我们学到如下知识:
(1)程序设计分为两个步骤:思路和编码。
(2)思路可以使用自然语言、流程图等一切可以描述清楚解决方案的形式来描述。
(3)将思路翻译成相应的代码。
案例二:根据三角形的三边长计算三角形的面积

<script>
    /*
    * (1)请输入三角形三边长,设三边长分别为numa、numb、numc
    * (2)先求出半周长   p=(a+b+c)/2
    * (3)再求三角形面积  S = √[p(p-a)(p-b)(p-c)]
    * (4)输出结果
    * */
    var numa = Number(prompt("请输入第一条边长"));  //Number();转化为数值类型
    var numb = Number(prompt("请输入第二条边长"));  //Number();转化为数值类型
    var numc = Number(prompt("请输入第三条边长"));  //Number();转化为数值类型
    var p = (numa + numb + numc)/2;   //计算半周长
    var s = Math.sqrt(p * (p - numa) * (p - numb) * (p - numc));    //海伦公式
    alert(s);     //输出结果
</script>

案例三:话费计算器,根据通话时长(单位为秒)计算话费,资费标准为0.5元/分钟。

<script>
    /*
    * (1)提示用户输入通话时长,精确到秒
    * (2)接收输入存放在min,将秒除以60再向上取整
    * (3)资费标准为0.5元/分钟
    * (4)计算费用
    * (5)输出结果
    * */
    var second = Number(prompt("请输入通话时长"));
    var minute = Math.ceil(second/60); //按分钟收费,不满1分钟的地方按一分钟收费
    var money = minute * 0.5;
    alert("此次通话产生话费"+money+"元");
</script>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章