销声匿迹了三个月了,一直都没有更博,不是我懒,是实在没时间。没错,本人又换了工作,要说人玩高处走,水往低处流,碰到好的工作机会,我当然不能错过咯。所以就有了这几个月的销声匿迹,隐姓埋名。因为新工作实在是忙,而且本人之前学的Python已经远远不够用了,所以现在处处充满挑战,OK,虽然我也认为我的技术很菜,那我更要努力学习以胜任现在的工作了。好吧,言归正传。
Although之前也陆陆续续接触过js,but一直都停留在表面,知其然但不知其所以然,也因为其语法相比于Python来说比较复杂,所以一直对它没有好感,然而,现在不行了,为了保住饭碗,只能硬着头皮来了,要不然还是会被社会和公司淘汰的。
今天先总结一下我学习过程中的一些重要的点。
一、Java和JavaScript的关系:
以前一直以为两者是父与子的关系,今天看了才知大错特错。
1、JavaScript 与 Java 是两种完全不同的语言,无论在概念上还是设计上;
2、JavaScript 是动态类型语言,而 Java 是静态类型语言;
3、JavaScript 是弱类型的,Java 属于强类型;
所以,不要再认为两者有关系了,不过其语法和C语言类似,且都是面向对象的编程。若果你会Java,那学起来应该是很快的。
二、JavaScript的基本语法
JavaScript的六种数据类型
种类 | 类型 |
---|---|
原始数据类型 | number // 数字 string // 字符串 boolean // 布尔 null // 空 undefined // 未定义 |
对象 | Object (其中对象包括:Function,Array,Date…) |
隐式转换
+和- | “37”-7 // 30 字符串与数字相减,把字符串转成数字 “37”+7 // 377 字符串与数字相加,把数字转成字符串 |
a==b | 类型相同:同=== ; 类型不同:尝试类型转换和比较,如下 "1.23" == 1.23 // number==string 转number 0 == false // boolean == ? 转number null == undefined new Object() == new Object() //Object == number|string 尝试对象转为基本类型 [1,2] == [1,2] |
a===b(严格等于) | 类型不同:返回false 类型相同:null=== null undefined===undefined NaN ̸ = \not= ̸=NaN new Object() ̸ = \not= ̸=new Object() |
类型检测
在JavaScript中,类型检测的方式有以下几种
方法 | 用法 |
---|---|
typeof 函数类型和基本对象的判断 | 适合基本类型及function检测,遇到null失效 |
instanceof | 通过{}.toString拿到,适合内置对象和基元类,遇到null和undefined失效(IE678等返回[object Object]) |
Object.prototype.toString | 适合自定义对象,也可以用来检测原生对象,在不同iframe和window间检测时失效 |
constructor | |
duck type |
表达式
表达式 | 用法 |
---|---|
原始表达式 | 常量,直接量:3.14,“test” 关键字:null,this,true 变量:i,j,k |
复合表达式 | 10*20 |
数组,对象的初始化表达式 | [1,2],[1,4],{x:1,y:2} |
函数表达式 | var fe = function(){}; (function(){console.log(‘hello world’);})(); |
属性访问表达式 | var o = {x:1};o.x,o[‘x’] |
调用表达式 | func(); |
对象创建表达式 | new Func(1,2); new Object |
1、定义变量
Python
Python | JavaScript |
---|---|
x = 5 | var x = 5; |
x = "MTbaby" | var x = "MTbaby"; |
x = [1,2,3] | var x = Array(1,2,3) 或者var x = [1,2,3] |
x = person() | var person = {firstName:"John", lastName:"Doe"} |
2、数据类型
Python | JavaScript |
---|---|
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean) | 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。 |
引用数据类型: 列表(list)、元组(tuple)、字典(Dict)、日期(data) | 引用数据类型:对象(Object)、数组(Array)、函数(Function)。 |
3、函数
Python | JavaScript |
---|---|
def fname(x): return x | function fname(x){ return x } |
未完待续……