昨天讲解的JS是编程最最简单的一些基础知识,复习一下:
JavaScript书写环境,<script>标签
1 <script type=”text/javascript”> 2 </script> |
alert()函数,至于什么是函数,先别管。alert弹出警告框
1 alert("你好"); |
控制台F12,console就是用来检测程序有没有错误的
1 console.log("你好"); |
我们已经知道了两种常见错误,
SyntaxError 语法错误 :比如符号是中文的
ReferenceError 引用错误 : 比如变量没有声明
数字的直接量:数字、NaN、Infinity
数字这个东西,有很多进制。
下面的值都是15:
1 15 2 017 3 0o17 4 0O17 5 0xf 6 0Xf |
下面的值都是0.04
1 0.04 2 4e-2 3 0.4e-1 4 .4e-1 |
6/0 结果是Infinity , 0/0结果是NaN
字符串的直接量:双引号、单引号
1 "字符串" 2 "45454" 3 "" |
变量: 变量的命名开头必须是字母、美元符号、下划线,后续的可以有字母、美元符号、下划线、数字;换句话说,不能以数字开头。不能有怪异符号,不能是保留字和关键字。
变量的定义,或者叫做变量的声明,用var
1 var a = 100; |
var一次之后,就可以不用var了。
用逗号隔开多个:
1 var a = 100 , b = 200; |
JS中变量声明可以提升,也就是说,可以先使用变量,然后再声明
1 a = 100; 2 var a; |
一个变量如果仅仅var了,但是没有赋值,默认的值是
1 undefiend |
变量的类型,实际上就是所有值的类型
基本的类型5种:
number类型 : 数字、NaN、Infinity
string类型 : 字符串
undefined类型 : 只有一个值,就是undefined
null类型 : 只有一个值,就是null
boolean类型 : 只有两个值true和false
引用类型:
我们日后再说
用typeof能够检测值的类型。
parseInt、parseFloat
parseInt是无条件的截断小数点后面的任何东西,不四舍五入。
1 parseInt(3.9888); // 3 2 parseInt("3年3月"); //3 3 parseInt("哈哈3年3月"); //NaN |
parseInt可以将任何一个进制的数字转为10进制,要记住数字不能直接用字面量,要加字符串
1 parseInt("0xf",16); //15 2 parseInt(0xf,16); //21 |
parseFloat就是获取小数点的,将string变为浮点数
1 parseFloat("3.14.123") //3.14 |
parseFloat没有进制,就不能写逗号。
数学运算符
+ - * / %
% 叫做求余,也有的书上求模
1 100 % 10 //0 2 15 % 5 //0 |
1 3454325435 % 3 |
的计算结果只能是0、1、2。 不能是3、4、5、6……
运算顺序是先选乘性(*/%)的,然后是加性(+-)的。
1 2 + 5634 * 5 % 5 / 2 |
解:原式 = 2 + 28170 % 5 / 2
= 2 + 0 / 2
= 2
作业
1)计算下列算式,并将结果输出:
1 console.log((123 + 45 * 78) / (34 + 543) - 9 * (324 - 34)); |
2)表示气温有两种方法:摄氏度和华氏度。两者的关系是:
编写程序,让用户输入摄氏度,弹出对应的华氏温度。
1 <script type="text/javascript"> 2 //第一步,让用户输入数字 3 var sheshidu = parseFloat(prompt("请输入摄氏温度")); 4 //第二步,计算 5 var huashidu = 9 / 5 * sheshidu + 32; 6 //第三部,显示 7 alert("你好,华氏度是" + huashidu + "\n给钱!"); 8 </script> |
3) 用JS计算下列算式,并将结果在弹出:
这道题目就是用来练习嵌套的,
1 Math.pow((23 + Math.pow(5,7))/45,2); |
4) 编写程序,提示用户输入六边形的边长,然后弹出它的面积,计算六边形面积的公式是:
2 <script type="text/javascript"> 1 //第一步,让用户输入边长 2 var a = parseFloat(prompt("请输入六边形的边长")); 3 //第二步,计算 4 var s = 3 * Math.sqrt(3) / 2 * Math.pow(a,2); 5 //第三步,显示 6 alert("面积是" + s); 7 </script> |
5)
如果今天是星期二,那么1000天后是星期几?用户输入一个天数,计算这个天数后是星期几。
如果今天是星期2,那么7天后是也是星期2,14天后也是星期2。
今天1天后是星期3,那么8天后也是星期3,15天后也是星期3。
所以49天后,是星期2。因为49 % 7 结果是0
所以79天后,是星期4。 因为79 % 7 结果是2,相当于2天后
所以,1000天后的星期就要看简化为相当于几天后?
1000 % 7 结果是6, 所以就相当于6天后的星期。
6天后就是星期1。
综合算式就是: (2 +
1000 % 7) % 7
如果用户输入天数,那么就是
1 |
6)
用户输入一个三位数,弹出各个数位的和。
比如:
用户输入155,就弹出11
用户输入316,就弹出10
用户输入989,就弹出26
用户输入678,就弹出21
这里就有一个“算法”的概念,“算法”就是人想出来的让机器解决事情的方法。
前不久有一个机器alphaGo能打败李世乭,实际上就是算法为王,算法非常好。
机器能干的事情就是计算、流程控制。
用户输入数字简单,但是拆分数字需要我们的智慧了。
比如用户输入316,如何单独得到各个数位???
个位简单, 就是 316 % 10 得到6
百位也简单,就是parseInt(316
/ 100) 得到3
十位比较复杂,
parseInt(316 / 10) % 10 得到1