JavaScript
是前端的一门编程语言(也是有逻辑)
node.js 支持前端js代码 跑在后端服务器上
Js跟Java什么关系?
Js跟Java半毛钱关系都没有!!!
原因是当初Java特别火 想蹭热度
js是网警公司开发的 该公司想让所有的浏览器都支持该语言
折中 改个名字 js也叫ECMAScript(两者等价)
当前使用较多的版本
2011 ECMAScript 5.1 版本变更
新出来
2015 ECMAScript 6 添加类和模块
JS
注释
// 单行注释
/*
多行注释1
多行注释2
*/
js的引入方式
1.script标签内部直接书写
<script>
alert(123)
</script>
2.通过script标签src书写 引入外部js文件
<script src="js.js"></script>
Js里面的变量
在js中声明变量需要使用关键字
var 声明的是全局有效
let 可以只在局部有效(ES6新语法)
var name = 'jason'
let name = 'oscar'
js中变量的命名规范
1.数字 字母 下划线 $
2.不能用关键字作为变量名
3.推荐你使用驼峰题命名
python推荐使用下划线(C++)
user_name
js推荐使用驼峰体(前端)
userName
js代码默认是以分号作为结束符
confirm('are you sure?');
你不写分号通常情况下一点问题都没有
研究var与let的区别
看截图
python中有无常量
常量:无法被修改的量
python中没有真正意义上的常量,我们约定俗成的将全大写的变量
称之为常量
*args,**kwargs
js中有常量
const 定义真正的常量 不能被修改
js中的数据类型
数值类型 Number
(int float)
字符类型 string
对象 object
数组 []
自定义对象 {}
布尔值 Boolean
true
flase
undefined
symbol
typeof 用来查看js数据类型
数值类型
包含整型浮点型
NaN也是数值类型 但是表示的意思是 不是一个数字
字符类型
字符串的拼接
python中不推荐使用加号(效率极低) %s format
js中推荐你使用加号来做字符串的拼接
如何定义多行文本
模板字符串
布尔值
在js中布尔值全部是小写!!!
true
false
js其实也是面向对象编程
数组
python中往列表中添加数据的方法
1.append 尾部追加
l = [1,2]
l.append([1,2,33,4])
l = [1,2,[1,2,33,4]]
2.insert 按照索引插入
3.extend 扩展列表
内部其实就是for循环+append
l = [1,2]
l.extend([1,2,3,4])
l = [1,2,1,2,3,4]
python中列表删除元素有几种方式
1.remove 移除
2.pop 弹出
3.del
python后端常用的内置函数
map 映射
zip 拉链
filter 过滤
reduce 多个进去一个出来
逻辑运算符
python js
and &&
or ||
not !
python后端三元运算符
x = 1
y = 2
res = 10 if x > y else 20
js中三元运算符
x = 1
y = 2
res = x > y ? 10 : 20
var x=a>b ?a:(b=="20")?a:b;
python后端定义函数
def
js前端定义函数
function
箭头函数
var f = v => v;
// 等同于
var f = function(v){
return v;
}
var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2){
return num1 + num2; //这里的return只能返回一个值,如果想返回多个值需要自己手动给他们包一个数组或对象中
}
js对象
在定义对象的时候 关键字 是 (*****)
new
python后端 前端js
json.dumps JSON.stringify
json.loads JSON.parse
Reg正则
Asyn异步
正则
// 定义正则表达式两种方式
var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/; 建议使用