开篇: 这一整周学了JS的基础部分,一开始怀着轻松加愉快的的想法,认为JS这么简单的东西还不好学吗,毕竟我是学过C++、Java、Android的男人(虽然都只是学了些皮毛而已==)!然而,随着老师的讲解,还是受益匪浅啊!学过C++还是有用的啊,虽然大部分的东西都已经原封不动的还给大学老师啦!(大学老师吐血中)O(∩_∩)O哈哈哈~下面就来听我娓娓道来!(小板凳!小板凳!!!)
section 1: 文本的输出
文本的输出有三种方式,分别为document.write() 、console.log()和alert()。原来在js里面还可以用文本的输出直接打印出html代码啊,当然只有document可以,真是活久见啊!
<script type="text/javascript">
document.write("<div id='box'></div>");
// 他们两个将标签以字符串输出出来
console.log("<div id='box'></div>");
alert("<div id='box'></div>");
</script>
然后在页面中就出现了一个div块!!!Amazing
section 2: JS中数据类型
基本的数据类型有Number、String、Boolean、undefined和null。令我万万没想到的是Number类型里面竟然竟然包含了浮点型(float)和整型(int),(明明在C++里面不是这样的好吗,人家是两个不同的数据类型好吗?反过来一想,js是一门弱类型语言好吧!弱……)。
就简单的了解下undefined吧。如果我们使用一个未定义的值或者定义了一个变量却没有给变量赋初始值,那么就会得到undefined!就是这样,so easy!(妈妈再也……)
section 3: JS中标识符
记得大一学C++的时候,考试经常会考到标识符,总是记得那条,忘了这条吧!于是整个人都是不好了。于是,
标识符:
1.有字母、数字、下划线和$组成的
2.不能以数字开头
3.不能是JS的关键字和保留字
section 4: 两个独特的类型Infinity与NaN
Infinity:表示数据超过js可以表示的范围,但是他的数据类型仍然是Num。我们可以把它看成是数学里面的无穷大的数吧!简单来说:就是无穷加无穷得无穷;无穷减无穷却的出一种新的数据,他就是NaN。
NaN:大家都知道无穷之间不能相减,这就是计算上的错误。所以当运算符错误的时候就会得到NaN,而且,如果用NaN去加减一个正常的数时,它会使整个结果也变成NaN。这样就可以把NaN理解成一个丧尸,一旦碰见正常人(Num),经过一番直达心灵的接触,然后都变成丧尸了。这就是NaN(丧尸)的特性:连带性、传染性吧。
section 5: 自增自减运算符和表达式
- 变量++:例如(a++),这个就是表示先取值再加一,就像b = a++;就是先将a的值赋给变量b,然后a的值再加1,我想或许是a离b比较近,所以a就“爱上”了b,然后a就把自己全部都奉献给了b,最后再来加一。
- ++变量:例如(++a),这表示先加1再取值,如b =++a,先将a的值加1,然后把a的值赋给了b。对于这个我是这样理解的,因为a距离b比较远,然后a这个人比较自恋,于是它就先自增1。机缘巧合下,认识了b,然后两个人就……
举例说明:
var a = 1;
var b;
b = a++ + ++a + ++a + a++ - a--;
document.write(a);
document.write(b);
这段代码就是先将a赋值为1,通过不断的a++ 和 ++a 给b 进行赋值。对于b的整个赋值过程,我们可以分成a的状态值和算式的计算值。
首先,对于a++,这里的计算值就是1,而a的状态值就是2了;对于++a,计算值为3,其状态值也为3;第二个++a,计算值为4,状态值也为4;a++中,计算值为4,状态值为5;a--中,计算值为5,状态值为4;通过计算它们的计算值,便可得到b的值啦!四不四很简单呢,只要明白它们的状态值和计算值,像做这些题目简直是轻松加愉快啊!!摸摸哒!
section 6: 关系运算符中== 与 ===
虽然这两个基友长得很相似,但是它们之间的意义却完全币一样!
var num = 1;
var str = "1";
console.log(num == str);
console.log(num === str);
这里分别定义了两个不同类型的1,一个代表了数字型的1,另一个则代表了字符串的1,下面则输出打印。第一个不出意料地打印了true,第二个竟然打印出了false;这是弄啥嘞!(黑人脸?_?)
原来,第一个只要数据等于即可,两个同为1;但是要===(学名:恒等于)成立的话,就一定要性别和年龄都要相符(也就是数据和类型),这样才有共同语言嘛,共同生活嘛,才能输出true嘛!
section 7: 逻辑运算符
逻辑与、非、或、运算符:&&、!、 II
关于这里,&&和| |重点记住他们的惰性原则也称短路原则(此短路非彼短路,并不是脑子短路了),这里的短路与高中电路上的断路非常相似吧!
含义:从左至右依次计算表达式的值,直到遇到一个表达式的值为假(真)则停止计算,因此此时我们已经知道逻辑与运算表达式的值为假(真)了。
是不是和高中的电路很相似呢!只要电路发生断路了,整个电路都不通了,断路后面的电路就全部瘫痪了!(想念高中的物理啊!想当初物理还考过第一咧(__) 嘻嘻……谦虚脸)
section N: 鱼的记忆
-
将其他基本类型转换成String类型
(1)最经典:" "+num
你没看错,就是空字符串加num型(你要转换的类型),就可以把num型就转换成字符型了。神奇!
(2)最常规:num.toString() -
prompt()
这个就是从外部输入数据,通过它来接收啦。
不过要注意,它默认传递过来的就是字符串类型的数据。 -
三目运算符
三目???难道是三目童子?不是!!!这里说的是运算符。
运算表达式:表达式 ? 表达式1 : 表达式2
这个在一定情况下,可以看成是if语句的缩写,省略不少代码咧,机智BOY! -
break 语句
break专门用来跳出switch语句和循环语句的,后面的代码不会执行,只跳出距离它最近的那一层循环或switch。 -
continue语句
continue:用来跳过本次循环继续下次循环的,也就是代码执行到continue语句时,它并不会执行continue之后的语句,而是重新开始下一次循环。