刷完了udacity上JS的入门课,纯粹为了学习开发小程序而补的前端知识。
一开始在SoloLearn上最先接触的JS,只用了三个小时不到就把证书刷下来了,这毕竟是我在SoloLearn的第一个证书,先炫一下哈!
进入正题,JavaScript起初为了出名特地把名字取得和Java很像,因为Java一直都很火,Java web, 移动开发,服务器。当然如果学过java在去学JS得话,就会感觉者这门语言非常得友好,沿袭了Java的大部分风格,这里就说几点不同吧。
1. 数据类型
1.1自动判断类型。
在传统的语言里,要定义变量,都要是使用int ,float , double ,boolean这些关键字,但是在JS里完全不用。直接使用var关键字,变量的数据类型完全由系统自动判断。
#java8,c,c++都要这么写
int age= 25;
float pi = 3.14;
#听说Java9也使用var 自动判断,不过,本人还是坚守Java8.
而在JS里就可以这么写:
var name = 'javascript';
var age = 25;
var pi = 3.14;
var message = ['hello', 'nihao'];
//注:JavaScript里single quote 和 double quote 没有区别,本人更加倾向single quote,JS好多地方和python很像。
1.2 字符串拼接
javaScript的字符串自动拼接,可以在这里把number直接转成字符串。
注:console.log()是输出日志,相当于Java的System.out.print()。
1.3 绝对相等
javascript使用了自动判断类型,所以使用===表示数值和数据类型都相等,而==仅仅表示数值相等。
2.真假值
在JavaScript里,视为真值的有non-zero number, non-empty string, object, array, true。
在JavaScript里,视为假值的有null, undefined, 0, empty string, NaN, fasle。
三元运算符是从c语言一直沿袭下来的,Java也有。不过没怎么常用。
3.函数
JavaScript里函数使用function()关键字。
3.1 返回与日志(输出与返回)
3.2 作用域
3.3 提升
1.JavaScript 会将函数声明和变量声明提升到当前作用域的顶部。
2.变量赋值不会提升。
3.在脚本的顶部声明函数和变量,这样语法和行为就会相互保持一致。
3.4 函数表达式
匿名函数,有点类似lambda表达式。可以把函数储存在变量中。
所有函数声明提升和加载后,脚本才会实际地运行。函数表达式不会提升,因为它们涉及变量赋值,只有变量声明会提升。在解析器在脚本中到达该表达式之前,函数表达式不会加载。
3.4.1 回调
3.4.2 有名称的函数表达式
3.4.3 内嵌函数表达式
这种内嵌函数表达式,在python中称之为把函数视为一等对象。
函数表达式,将函数内嵌传递给其他函数的语法在 JavaScript 中很常见
4.array
JavaScript的array感觉更像是python的list,用了这么久,感觉都是一样的。
array loop
传统的遍历array。
forEach()更像是一种迭代。
map()返回一个新的array
5.对象
5.1 typeof
既然是自动判断类型的语言,就必然要有用来判断变量类型的函数。在python里是type(),在JavaScript里是typeof()。
5.2 创建对象
第一次看到这个时候感觉想c语言的结构体,但是后来想了想,感觉Javascript的对象更像散列函数。