##Javascript
###1 嗯,关于执行 JS 的问题预习已经提到过了,确实是要打开 debug 窗口吧
这里 console.log(...) 可以理解成在打印 ... 的内容
其中 ... 可以是文字 "Hello" 也可以是整数 9
###2 通过这句简单的语句,我们首先明白 console.log() 可以用于打印,或者说输出内容
然后,我们可以知道 JS能处理文字和数字
最后我们特别注意一句语句由分号结束
###3 接下去我们先提一下 JS 的几个数据类型
所谓数据类型,就是编程语言能够处理的基本单元啦,比如文本(字符串)和整数(数)
括号内为正式名称
字符串的说法是指一串字符…… "Hello" 包含 5 个字符,引号确定边界吧
好了啦,总而言之,继续介绍字符串
引号里面也可以有中文的,比如"你好"
console.log("你好");
数(Number)类型包括整数和非整数……
3.14 和 9 的类型是一样的
整数是可以进行数学运算的,嗯…… console.log(1 + 2);
但是这个也不严格是数学运算啦……准确来说应该是整数或者浮点数运算吧,有精度限制
不是的, 3.14 和 9 都是数。 JS 不区分整数和小数
###4 可能没那么神奇,它也只是能处理一些基本类型而已……比如数或者字符串
1+2 的场合,数相加仍然是数,然后 console. log 只是输出了结果
这里先计算了括号中的内容
之前也看到过 1+2 和 "1+2" 有明显不同
前者是两个数相加,后者是3个字符组成的字符串
啊,然后就会有人问 1+ "2" 怎么是12
###5 我们先来学习整数运算,大概有 + - * /
但是字符串运算只有 + ,其作用并非加法而是连接。如 "你好" + "世界"
这里可以认为只是碰巧也写作 + 而已
如果碰到字符串和数相加的情况呢?应该选择哪一种呢?显然有意义的只有把数转成字符串再相连接
"今天的气温是" + 33 + "摄氏度"
遇到这种情况, JS 做出的决定是把字符串转换为数。转换失败的场合,结果没有意义
###6 总结, JS 的 - * / 与数学类似,无论两边是什么类型,都按照数来计算,不是数的转换为数。但 + 例外,在至少有一边是字符串的时候是连接
对于任意类型, - * / 的运算法则不变
###7 数中比较特殊的是 Infinity 和 -Infinity ,分别是正负无穷大
不一定是数学意义上的无穷大,也可能只是太大超出处理范围
有人可能会问,那有没有无穷小呢?答案是有的,就是 0 (请回忆之前讨论的精度问题)
NaN 记得是与任何数运算结果都是 NaN
有了数和字符串就可以做很多事,比如把 JS 当计算器用
另外提醒一下 NaN 也是数……尽管读作不是数
系统地学习类型知识是有必要的,但如果急着操作网页,不学也不是不行啦
###8 刚才讲解了字符串和数两种类型和常见运算
说明了 console.log 的使用方法
接下来想要让大家试试看用 JS 计算一点东西,比如说……这里菊苣的比例
假设60人中有 12 人是菊苣,要求输出菊苣的百分比
可以先计算小数,然后想想怎么转换为百分比
###9 好了啦,讲变量了
变量可以存放一个值……这个值是几种类型中的一种
其语法是 var a = 9; 这样的
声明了一个变量 a ,存放的值为 9
在有了这句话的前提下,计算 a/3 结果是3,相当于把 a 的值取出
var b = 1 + 2; 的情况下, b 的值是 3 ,不是算术式 1+ 2 也不是字符串
利用这个可以存储一部分计算结果,在进行下一步运算时利用变量代替数
当然,可以是字符串
变量的值可以更改,所以被称为变量
b = 3 的场合,改变 b 的值为3
想象这里的等号是 b ← 3 ,而非数学上的相等
b = b + 1; 的场合, b 存储的值增加1
说了这么多了,大家练习一下吧
用 total 变量保存总人数(这里是62了吧?),然后用 juju 保存菊苣人数(假设12),计算菊苣的比例
不要纠结百分比,小数也可以
var total = 62;
类似这样用
那么,哪位同学写好了,请举手
假设上面的代码执行过以后,又来了3人,其中1人是菊苣,要求修改变量的值(用赋值语句 =,不是重新声明),然后再输出新的菊苣比例
请问怎么做?
只要写出增加的代码
好的,大概就是那样的。这里要注意 juju = juju + 1 也可以简写为 juju += 1 ,读作 juju 增加 1
也可以再简写为 juju ++ ,读作菊苣递增。也有人反对使用 ++ ,说看起来太费劲,不过这是后话了
Samuel Dan 不修改变量的值而直接参与运算,也是可取的。实际编写过程中请采用自己觉得适合的方案吧
一般来说,如果之后还有用,那么可以保存到变量中
大家还是少用逗号吧……偷懒不一定是好事
初学还是一句一句写吧,尽量语句一个分号一行
###10 那么各位,今天的课程大概就到这里了。稍后会有作业布置
可能进度比较慢?和大家预想的不一样?
嘛,耐心耐心……
虽然今天花费了不少时间,但是我们已经弄清大部分关于数字和字符串的坑了……真是可喜可贺