刷完了udacity上JS的入门课,纯粹为了学习开发小程序而补的前端知识。
一开始在SoloLearn上最先接触的JS,只用了三个小时不到就把证书刷下来了,这毕竟是我在SoloLearn的第一个证书,先炫一下哈!
SoloLearn证书进入正题,JavaScript起初为了出名特地把名字取得和Java很像,因为Java一直都很火,Java web, 移动开发,服务器。当然如果学过java在去学JS得话,就会感觉者这门语言非常得友好,沿袭了Java的大部分风格,这里就说几点不同吧。
1. 数据类型
1.1自动判断类型。
JavaScript的数据类型在传统的语言里,要定义变量,都要是使用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使用了自动判断类型,所以使用===表示数值和数据类型都相等,而==仅仅表示数值相等。
JavaScript绝对相等
实际测试 比较运算符
2.真假值
在JavaScript里,视为真值的有non-zero number, non-empty string, object, array, true。
Truthy Values
在JavaScript里,视为假值的有null, undefined, 0, empty string, NaN, fasle。
Fasly Values
三元运算符是从c语言一直沿袭下来的,Java也有。不过没怎么常用。
3.函数
JavaScript里函数使用function()关键字。
函数
3.1 返回与日志(输出与返回)
console.log() undefined 输出与返回 输出与返回3.2 作用域
引用传递 值传递3.3 提升
1.JavaScript 会将函数声明和变量声明提升到当前作用域的顶部。
2.变量赋值不会提升。
3.在脚本的顶部声明函数和变量,这样语法和行为就会相互保持一致。
提升 提升导致的错误(1) 提升导致的错误(2)
3.4 函数表达式
匿名函数,有点类似lambda表达式。可以把函数储存在变量中。
函数表达式 匿名函数表达式所有函数声明提升和加载后,脚本才会实际地运行。函数表达式不会提升,因为它们涉及变量赋值,只有变量声明会提升。在解析器在脚本中到达该表达式之前,函数表达式不会加载。
函数对比3.4.1 回调
回调3.4.2 有名称的函数表达式
有名称的函数表达式 命名函数表达式3.4.3 内嵌函数表达式
这种内嵌函数表达式,在python中称之为把函数视为一等对象。
内嵌函数表达式
函数表达式,将函数内嵌传递给其他函数的语法在 JavaScript 中很常见
内嵌函数表达式4.array
JavaScript的array感觉更像是python的list,用了这么久,感觉都是一样的。
array array method
array loop
传统的遍历array。
forEach()更像是一种迭代。
forEach() forEach()回调函数
map()返回一个新的array
5.对象
image.png5.1 typeof
既然是自动判断类型的语言,就必然要有用来判断变量类型的函数。在python里是type(),在JavaScript里是typeof()。
typeof
5.2 创建对象
第一次看到这个时候感觉想c语言的结构体,但是后来想了想,感觉Javascript的对象更像散列函数。
创建对象 命名规则 创建 JavaScript 对象实例 把属性添加到 JavaScript 对象 把方法添加到 JavaScript 对象
网友评论