JavaScript部分
JavaScript
Javascript的引入方式
-
在HTML的scrip标签内写代码
<script> //可以在这里写上js代码 </script>
-
引入js文件
<script src = 'js文件的路径'></script>
JavaScript的语言规范
-
注释
在了解一门语言之前一定要先了解这门语言的注释怎么写,在JavaScript中使用
//单行注释
表示单行注释,以/*多行注释*/
符号表示多行注释 -
结束符
与python不同的是,JavaScript是要以
;
表示结束符,有;
表示要结束这段语句
JavaScript变量
变量
无论在那种语言中,变量都是最为重要的一部分,在python中我们定义变量只需要变量名 = 变量值
就可以了,然而,在JavaScript中需要先声明变量,声明变量需要使用var
或get
关键字进行声明,其语法格式为var 变量名 = 变量值
或者let 变量名 = 变量值
,那么var
和let
有什么区别吗?
var
声明的变量是全局变量而let
声明的变量是局部变量,let
声明的变量只在代码块内有效,比如在for循环中我们就可以使用let
声明变量。
常量
在python中常量只是约定俗成的,是可以修改的,而在JavaScript中,我们声明常量可以使用const
关键字,一旦声明就不可以被修改
const PI = 3.1415;
PI // 3.1415
PI = 3;
// TypeError: "PI" is read-only
变量名的命名规则
- JavaScript中的变量名区分大小写
- 推荐使用驼峰体命名
- 不能使用关键字做变量名
- 可以使用数字、字母、下划线和$符号命名变量名,但不能使用数字开头
JavaScript数据类型
首先我们需要先了解JavaScript拥有动态的类型,也就是说在定义是可以不用先限制数据类型
var x; // 如果只定义一个变量名则此时x为undefined,这点与python不同
var x = 1; // 此时x的数据类型是数字类型
var x = 'lk'; // 此时x的数据类型是字符串
数值型
在JavaScript中不区分整型和浮点型,就只有数值类型和NaN,NaN表示不是一个数字
var x = 12.34;
var y = 10;
var z = 123e-5 // 0.00123
// 使用parserInt转换类型
parserInt('abc') // NaN 表示这个值不是数字,而在python中会直接报错
字符串
字符串在定义时要用引号引起来
var a = 'hello ';
var b = 'world';
// 在JavaScript中推荐使用+拼接字符串
var c = a + b;
// 在JavaScript中使用console.log打印信息
console.log(c) // hello world
字符串的内置方法
方法 | 功能 |
---|---|
.length | 求字符串长度 |
.trim | 去除两端的空格 |
.trimLeft | 去除左侧空格 |
.trimRight | 去除右侧空格 |
.charAt(n) | 返回第n个字符串同索引取值 |
.concat(value1,valuve2,….) | 拼接字符串 |
.indexOf(substring, start) | 子序列位置 |
.substring(from, to) | 根据索引获取子序列同索引切片 |
.slice(start, end) | 索引切片 |
.toLowerCase() | 小写 |
.toUpperCase() | 大写 |
.split(delimiter, limit) | 分割 |
从表格中我们可以看到有两个索引切片,那么他们有什么区别呢?
-
相同点
如果start等于end,返回空字符串
如果stop参数省略,则取到字符串末
如果某个参数超过string的长度,这个参数会被替换为string的长度 -
不同点
substing 不能识别负数,slice可以识别负数
slice传单个参数,从当前传入参数位置往后切,前面的不要
var name3 = 'lkgod'
name3.substring(1,4);
"kgo"
name3.slice(0,-1);
"lkgo"
undefined
name3.slice(1);
"kgod"
布尔值
布尔值和python的区别就是true和false都是小写的,而python中开头字母大写
与python中相似的是,0 None 空(字符串)undefined NaN 都是false
null和undefined的区别
- null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;
- undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。
对象
与python中相似,JavaScript中也是一切皆对象,除了字符串、数值、数组、函数以外,JavaScript还可以自定义对象,而且JavaScript中提供了多个内建对象,比如string,date,array等,下面分别了解一下JavaScript中各种不同的对象
数组
与python中的列表类似,都是使用[]表示
var lt = [123,'abc']
lt[1] // 'abc'
内置方法
方法 | 作用 |
---|---|
.length | 数组的大小 |
.push(ele) | 尾部追加元素 |
.unshift(ele) | 头部插入元素 |
.shift() | 头部移除元素 |
.slice(start, end) | 切片 |
.reverse() | 反转 |
.join(seq) | 将数组元素连接成字符串 |
.concat(val, ...) | 连接数组 |
.sort() | 排序 |
.forEach() | 将数组的每个元素传递给回调函数 |
.splice() | 删除元素,并向数组添加新元素。 |
.map() | 返回一个数组元素调用函数处理后的值的新数组 |
上面几种都和python中没什么差别,下面只说一下后面三种python中没用的方法
-
forEach的用法
forEach方法中要传一个function参数,function是一个函数,函数需要三个参数
currentvalue(必须的,当前元素的值) index(不必须,当前元素的索引)arr(不必须,当前元素所属的数组)
forEach中还可以传入一个thisvalue参数,这个参数可选,对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue ,"this" 的值为 "undefined"
var lt2 = [11,22,33,44]; Uncaught SyntaxError: Unexpected token ] lt2.forEach(function(value){ console.log(value) }) /* VM1130:2 11 VM1130:2 22 VM1130:2 33 VM1130:2 44 */