JS
内容概要
- JS简介
- 变量与常量
- 基本数据类型
- 运算符
- 流程控制
- 函数
- 内置对象
JS简介
全称JavaScript但是与Java一毛钱关系都没有 之所以这么叫是为了蹭Java的热度
他是一门前端工程师的编程语言 但是它本身有很多逻辑错误(不是很严谨)
IT行业的鄙视链:后端 > 前端、运维、测试、产品、老板
前端想一统天下
JS基础
-
注释语法
// 单行注释 /*多行注释*/ -
进入js的多种方式
-
head内script标签内编写 -
head内script标签src属性引入外部js资源 -
body内最底部通过script标签src属性引入外部js资源因为代码是从上往下运行的 有些js用到的名称再
body里还没有加载完所以会报错 ,所以再body的最底部写script引入外部资源
-
-
结束符号
分号(很多时候不写也没问题)
但还是建议写上
变量与常量
"""
1.pycharm创建js文件或者html文件(适合编写)
2.浏览器提供编写js代码的环境
"""
在js中声明变量需要使用关键字
var
var name='jason';
var
let name='tony';
ps:let是ECMA6新语法 可以在局部定义变量不影响全局在js中声明常量也需要使用关键字
const
const pi = 3.14

当你定义一个常量的时候 你就不能修改了,而Python就没有这种限制全靠程序员自觉。
基本数据类型
"""
在JS中查看数据类型的方式 typeof
"""
1.数值类型(Number)
在JS中整型与浮点型不分家 都叫Number
NaN也属于数值类型 意思是:不是一个数字(Not A Number)
let a = 1
undefined
let b = 1.233
undefined
typeof(a)
'number'
typeof(b)
'number'

-
字符类型(String)
单引号 'jason' 双引号 "jaosn" 模板字符串 `jason` a = 'jason' 'jason' typeof(a) 'string' a = "jason" 'jason' typeof(a) 'string'
var name = 'jason' undefined var age = 18 undefined var a1 = `my name is ${name} age ${age}` undefined a1 'my name is jason age 18'
如果用三引号定义就会报错
而Python可以

字符串内置方法
-
length字符串的长度 Python中len()
-
toLowerCase()转小写 Plower()
-
toUpperCase()转大写 Pupper()
-
trim()去除两边的空白 Pstrip()
trimLeft()去除左边的空白 Plstrip()
trimRight()去除右边的空白 Prstrip()
-
charAt(n)返回第 n 个字符 Pa[n]
-
indexOf(substring, start)返回字符串的索引跟 Python中的
find(n)差不多 找到返回索引找不到返回 -1

-
substring(from, to)根据索引获取字符串跟 Python中的切片一样 顾头不顾尾

-
slice(start,end)切片
-
split(delimiter, limit)分隔 跟 Python 一模一样
字符串拼接一般用 +
-
布尔类型(Boolean)
JS里面的布尔值与Python不同
JS是纯小写的 而 Python是首字母大写

空字符串、0、null、undefined、NaN都是 false
-
null与undefined
- null表示值是空的,一般需要指定或清空一个变量时才会使用,如name=null
- undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是哈桑农户无明确的返回值时,返回的也是undefined。
-
数组
数组对象的作用是:使用单独的变量名来存储一系列的值。类似于Python中的列表

内置方法
-
length数组的长度
-
push(n)尾部追加元素 Pappend(n)
-
pop()获取尾部元素 并且删除最后一个元素跟Python一模一样

-
unshift()头部追加 P 虽然没有但是又insert()插入
-
shift()头部移除
-
slice(start, end)
-
reverse()反转 Python颠倒列表顺序reverse()
-
join(seq)将元素连成字符串 跟 Python'$'.join(列表)
-
sort()排序 Python一样
-
splice(index,howmany,item1,...item2)删除元素,并向数组添加元素
a.splice(1,0,100)从索引1开始删除0个元素添加100在1的位置a.splice(1,2)从索引1开始删除2个元素
-
-
对象(Objiect)
JS里也有字典,但是它不叫字段叫自定义对象

运算符
-
算数运算符
+ - * / % ++(自增1) --(自减1) var x=10; var res1=x++; 加号在后面 先赋值后自增 var res2=++x; 加号在前面 先自增后赋值

-
比较运算符
!=(值不等 弱) ==(值相等 弱)
===(值相等 强) !==(值不等强)
ps:弱与强就是会不会自动转换类型
-
逻辑运算符
&& (与 and) ||(或 or) !(非 not )
流程控制
-
单
if分支if(条件){ 条件成立执行的代码 } -
if...else分支if(条件){ 条件成立执行的代码 }else{ 条件不成立执行的代码 } -
if....else if....else分支if(条件1){ 条件1成立执行的代码 }else if(条件2){ 条件2成立执行的代码 }else{ 条件都不符合执行的代码 } -
如果分支结构中的
else if过多还可以考虑使用switch语法switch(条件){ case 条件1: 条件1成立执行的代码; break; case 条件2: 条件2成立执行的代码; break; case 条件3: 条件3成立执行的代码; break; case 条件4: 条件4成立执行的代码; break; default: 条件都不满足执行的代码 }
如果不加
break
循环结构
1. for循环
for(起始条件;循环条件;条件处理;){
循环体代码
}

2. while循环
while(循环体条件){循环体代码}
var a = [11, 22, 33, 44]
var b = 0
while(b < a.length){
console.log(a[b])
b++
}

三元运算
"""
三元运算
Python中: 值1 if 条件 else 值2
JS中 条件?值1:值2
JS中 条件符合 打印?后面的
不符合 打印值2
"""
函数
"""
python中函数的定义
def 函数名(形参):
"""函数注释"""
函数体代码
return 返回值
"""
function 函数名(形参){
//函数注释
函数体代码
return 返回值
}
# 匿名函数
var s1 = function(a, b){
return a + b
}
# 箭头函数
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
}
1.JS中函数的形参与实参个数可以不对应
传少了就是undefined传多了不用
2.函数代码中有一个关键字arguments用来接收所有参数
3.函数的返回值如果又多个需要自己处理成一个整体



如果有多个返回值 只返回最后一个
你需要手动把多个值搞成一个值
内置对象
var d = new Date();
var a = new Date();
undefined
a.getDate() 获取日
5
a.getDay() 获取星期几(0~6)
1
a.getMonth() 获取月份(0~11)
11
a.getYear() 获取那一年(从1970年一月一日午夜)
122
a.getHours() 获取小时
20
a.getSeconds() 获取秒
26
d.getMinutes(); 获取分钟
8
a.getTime() 返回累计毫秒数(从1970/1/1午夜)
1670241686914
json
let dd = {name:'jaosn', age: 18}
var ss = JSON.stringify(dd) 序列化
JSON.parse(ss) 反序列化

定义正则两种方式
var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/
1.全局模式的规律
lastIndex
2.test匹配数据不传默认传'undefined'



浙公网安备 33010602011771号