js简介
js是脚本语言,一种轻量级的编程语言,是可以插入HTML页面的编程代码,可以由所有的现代的浏览器执行
引入的方式 通过点的方式(前提创建好的js文件)
js的语言规范
单行注释//
多行注释/
.......
.......
/
语句后面以;号结束
js的变量
js的变量名可以使用下划线,字母,数字,$组成的 ,但是不能以数字开头
声明变量名可以使用var变量名;的格式进行声明
注意:变量名区分大小写,推荐使用驼峰体,不能以保留字作为函数名(就相当于python中的内置关键词)
js数据类型
js中定义的常量不能修改
js是拥有动态数据类型的
var x //此时x是undefined
js不区分整数和浮点型,就只有一种数字类型
python中的布尔值是大写的开头
js中的全部小写
false:NaN 、空字符串、0、null、undefined
null表示值为空,一般在需要指定或清空一个变量时才会使用
其中undefined表示的是声名一个变量但是未被初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的是undefined
还有一种NaN,表示不是一个数字(Not a Number)
字符串用+号连接
方法 说明
.length 返回长度
.trim() 移除空白
.trimLeft() 移除左边的空白
.trimRight() 移除右边的空白
.charAt(n) 返回第n个字符
.concat(value, ...) 拼接
.indexOf(substring, start) 子序列位置
.substring(from, to) 根据索引获取子序列
.slice(start, end) 切片
.toLowerCase() 小写
.toUpperCase() 大写
.split(delimiter, limit) 分割
对象:所有的事物都可以称之为对象,如字符串,等
在js中对象也是带有属性和方法的特殊的数据类型
数组:数组对象的作用,使用单独的变量名来存储一系列的值。类似与python中的列表
var a =[123,136]
方法 说明
.length 数组的大小
.push(ele) 尾部追加元素
.pop() 获取尾部的元素
.unshift(ele) 头部插入元素
.shift() 头部移除元素
.slice(start, end) 切片
.reverse() 反转
.join(seq) 将数组元素连接成字符串
.concat(val, ...) 连接数组
.sort() 排序
.forEach() 将数组的每个元素传递给回调函数
.splice() 删除元素,并向数组添加新元素。
.map() 返回一个数组元素调用函数处理后的值的新数组
语法:
splice(index,howmany,item1,.....,itemX)
参数 描述
index 必需。规定从何处添加/删除元素。
该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany 必需。规定应该删除多少元素。必须是数字,但可以是 "0"。
如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item1, ..., itemX 可选。要添加到数组的新元素
类型的查询
typeof 他是一个一元的运算符(+-*/)可以查询数据的类型,在python中类似于type内置的函数。
undefined - 如果变量是 Undefined 类型的
boolean - 如果变量是 Boolean 类型的
number - 如果变量是 Number 类型的
string - 如果变量是 String 类型的
object - 如果变量是一种引用类型或 Null 类型的
js函数
js运算符
算数运算符
- / % ++ --
其中++是先赋值再自增1运算的,
而++x是先进行自增运算的再进行赋值
- / % ++ --
比较运算符
= < <= != == === !==
其中==是“弱等于”
===是“强等于”
1 == “1” // true 弱等于
1 === "1" // false 强等于
逻辑运算符
&& || !
相当于python中的and or not
赋值运算符
= += -= *= /=
js流程控制
js中的流程控制
if-else 他的打印语句是和python不同的 使用的是console.log()
else if python中是elif ()内是条件 ; {}内是缩进的内容
var a = 10;
if (a > 5){
console.log("yes");
}else {
console.log("no");
}
switch
var day = new Date().getDay();
switch (day) {
case 0:
console.log("Sunday");
break;
case 1:
console.log("Monday");
break;
default:
console.log("...")
}
switch 中的case子句通常会加break语句的,否则程序会继续执行后续的case中的语句
for
for (var i=0;i<10;i++) {
console.log(i);
}
for 里面是定义的变量和范围
while
var i = 0;
while (i < 10) {
console.log(i);
i++;
}
三元表达式
var a = 1;
var b = 2;
var c = a > b ? a : b
//这里的三元运算顺序是先写判断条件a>b再写条件成立返回的值为a,条件不成立返回的值为b;三元运算可以嵌套使用;
var a=10,b=20;
var x=a>b ?a:(b=="20")?a:b;
x
注意:这里的运算顺序和python中的运算顺序不一样,这里是先判断再写成立的条件
python中是先写成立的条件再判断的
js函数的全局变量和局部变量
定义函数的方式和python中有点区别的
function 函数名
// 普通函数定义
function f1() {
console.log("Hello world!");
}
// 带参数的函数
function f2(a, b) {
console.log(arguments); // 内置的arguments对象
console.log(arguments.length);
console.log(a, b);
}
// 带返回值的函数
function sum(a, b){
return a + b;
}
sum(1, 2); // 调用函数
// 匿名函数方式
var sum = function(a, b){
return a + b;
}
sum(1, 2);
// 立即执行函数 书写立即执行的函数,首先先写两个括号()()这样防止书写混乱
(function(a, b){
return a + b;
})(1, 2);
var f = v => v;
// 等同于
var f = function(v){
return v;
}
使用=>的方式定义函数
如果箭头函数不需要参数或者需要多少个参数,就是用圆括号代表参数的部分
var f = () => 5;
// 等同于
var f = function(){return 5};
var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2){
return num1 + num2; //这里的return只能返回一个值,如果想返回多个值需要自己手动给他们包一个数组或对象中
}
函数的参数arguments参数,相当于将传入的参数全部包含,这里取得就是第一个元素1
函数只能返回一个值,如果想要返回多个值,只能将其放在数组或者对象中返回
js作用域
分为全局作用域和局部作用域
变量的生存周期
局部变量会在函数运行以后被删除
全局是在页面关闭以后会删除
js自定义对象
var person=new Object(); // 创建一个person对象
person.name="Alex"; // person对象的name属性
person.age=18; // person对象的age属性
js对象
在定义对象的时候 关键字
new
python后端 前端js
json.dumps JSON.stringify
json.loads JSON.parse
正则表达式对象中,定义的方式有两种
// 定义正则表达式两种方式
var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/;