JavaScript
js简介
1就是也是一门编程语言,它也是可以书写后端代码的
用js一统天下,前后端都可以写
nodejs支持js代码跑在后端服务器上
2js跟Java半毛钱关系都没有,纯粹是为了蹭当时Java的热度
ecmaScript
前者是后者的规格,后者是前者的一种实现
js版本
5.1和6.0
JavaScript是脚本语言
JavaScript是一种轻量级的编程语言
JavaScript是可插入HTML页面的编程代码
JavaScript插入HTML页面后,可由所有的现代浏览器执行
js注析
//单行注析
/*
多行注析
多行注析
多行注析
*/
js引入方式
1script标签内部直接书写js代码
2script标签src属性引入外部js代码
js语法结构
js以分号作为语句的结束
但是如果你不书写分号,问题不大,也能够正常执行,但是它就相当于没有结束符
js学习流程
变量
数据类型
流程控制
函数
对象
内置方法/模块
变量
在js中首次定义一个变量名的时候需要用关键字声明
1关键字var
va name='jason'
2ems6推出的新语法
let name='json'
如果你的编辑器支持的版本是5.1,那么无法使用let
如果6.0则上下兼容
常量
Python中没有真正意义是的常量,默认大写字母就是表示常量
js中是有真正意义上的常量的
const pi=3.14
js变量的命名规范
1变量名只能是
数字、字母、下划线、$
2变量名命令规范
1js中推荐使用驼峰式命名
userName
dataDb
2Python推荐使用下划线的方式
user_name
3不能用关键字作为变量名
js代码书写位置
1可以单独开设js文件书写
2还可以直接在浏览器提供的console界面书写
在浏览器书写js的时候,左上方的清空按钮只是清空当前页面,代码其实还在
数据类型
js是一门拥有动态类型
js也是一门面向对象的编程语言,一切皆对象
数值类型(number)
如何查看数据类型
typeof
特殊的NaN:数值类型,表示的意思是'不是一个数字' NOT A NUMBER
类型转换
parseInt( )
parseFloat( )
字符类型(string)
模板字符串
` `
模板字符串除了可以定义多行文本之外还可以实现格式化字符串操作
书写${ }会自动去前面找大括号里面的变量名对应的值,如果没有定义直接报错
字符串的拼接
在Python中不推荐使用+做拼接, join
在js中推荐使用+做拼接
字符类型常用方法
length 返回长度
trim 移除空白
trimLeft 移除左边空白
trimRight 移除右边空白
charAt 返回第n个字符
concat 拼接
index 子序列
substring 根据索引获取子序列
slice 切片
toLowerCase 小写
toUpperCase 大写
split 分隔
布尔值
1在Python中布尔值是首字母大写的
2在js中布尔值是全小写
布尔值是false的
空字符串、0、null、undefined、NAN
null与undefined
null表示为空,一般都是指定或者清空一个变量时使用
undefined表示声明一个变量,但是没有初始化操作(赋值)
对象
数组
类似于Python里面的列表
length 数组大小
push 尾部追加元素
pop 获取尾部的元素
unshift 头部插入
shift 头部移除
slice 切片
reverse 反转
join 将数组元素连接成字符串
concat 连接数组
sort 排序
forEach 将数组元素传递给回调函数
splice 排除元素,并向数组添加新元素
map 返回一个数组元素调用函数处理后的值的新数组
Python内置函数
map映射
zip拉链
filter过滤
reduce多个进一个出
运算符
算数运算符
加号在后面先做赋值后自增,++自增1
加厚在前面先自增后赋值
比较运算符
1==‘1’
弱等于,内部自动转换成相同的数据类型比较
1 === ‘1’
强等于,内部不做类型转换
逻辑运算符
&&
||
!
赋值运算符
= += -=
流程控制
if判断
在js中代码是没有缩进的,只不过我们处于Python书写习惯
人为的加上
switch
for循环
while循环
三元运算符
Python中三元运算符 rec= 1 if 1>2 else 3
js中三元运算 rec = 1>2 ?1:3
函数
在Python定义一个函数需要用到关键字def
在js中定义函数需要用到关键字function
格式
function(形参){ 函数体代码 }
无参函数
function func( ){
console.log( 'hello' )
}
func( ) 加括号调用
关键字argument
函数返回值
使用的也是关键字return
只能拿到最后一个
匿名函数
没有名字
箭头函数
var func1 = v =>v:
等价于
var func = function( v ){
return v
}
自定义对象
你可以看成是我们Python里面的字典,但是js自定义的对象要比Python里面的字典操作起来
更加方便
第一种创建自定义对象的方式
var d = { 'name' = 'json' , 'age' = 18}
第二种创建自定义对象的方式,需要使用关键字new
var d = new Object { }
d.name = 'json'
d.password = 123
Data对象
getDate( )
getDay
getMonth
getFullYear
json对象
在Python中序列化反序列化
dump 序列化
loads 反序列化
在js中也有序列化反序列化
JSON.stringfy( )
JSON.parse( )
RegExp对象
在Python中如果需要使用正则,需要借助于re模块
在js中需要你创建正则对象
第一种
let reg1 = new RegExp( '^[a-zA-Z][a-zA-Z0-9]{5,11}' )
第二种
let reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,11}/
1全局模式下有一个lastindex属性
2什么都不写默认undefined