Skip to content

Instantly share code, notes, and snippets.

@eccstartup
Last active August 29, 2015 14:02
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save eccstartup/9e33706c68d8f014389e to your computer and use it in GitHub Desktop.
Save eccstartup/9e33706c68d8f014389e to your computer and use it in GitHub Desktop.

##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 那么各位,今天的课程大概就到这里了。稍后会有作业布置

可能进度比较慢?和大家预想的不一样?

嘛,耐心耐心……

虽然今天花费了不少时间,但是我们已经弄清大部分关于数字和字符串的坑了……真是可喜可贺

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment