JavaSript_day01

js简介

  1. js也是一门面向对象编程语言 它也是可以写后端的。
  2. js跟java一毛钱关系没有 存粹是为了蹭当时java的热度
JS版本
	主要还是用的5.16.0
JavaScript 是脚本语言
JavaScript 是一种轻量级的编程语言。
JavaScript 是可插入HTML页码的编程代码。
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
JavaScript 很容易学习

* js 的注释
'''
// 单行注释
/*
多行注释1
多行注释2
多行注释3
*/ 
'''

* 两种引入方式
	1.script标签内部直接书写js代码
	2.script标签src书写引入外部js代码

* js语法结构
	js是以分号作为语句的结束
	但是如果你不写分号,也能够正常执行 但是它相当于没有结束符

js学习流程

  • 变量
  • 数据类型
  • 流程控制
  • 函数
  • 对象
  • 内置方法/模块

变量

1. 关键字var
	var name='jason'
2. es6推出的新语法
	let name='jason'
	如果你的编辑器支持的版本是5.1那么无法使用let
	而如果是6.0则向下兼容 var let 都可以用

# varlet的区别
  var 定义的变量 当for循环中由相同的变量 那么for循环中的变量进行改变后会覆盖掉var定义的变量
  反之let不会

常量

# js中是有真正意义上的常量的
const pi = 3.14

js变量的命名规范
	1.变量名只能是
		数字 字母 下划线 $
	2.变量命名规范
		1.js中推荐使用驼峰式命名
			userName
			dataOfDb
		2.python推荐使用下划线的方式
			user_name
			data_of_db
		3.不能使用关键字作为变量

数据类型

js是一门拥有动态类型

name = 'jason'
name = 123
# name可以重新赋值且可以是任意的数据类型
# c就不具备动态类型 例如 int n = 1  那么n后面重新赋值 也就只能赋 int型数值

js代码运行 可以直接通过谷歌浏览器(打开任意一个页面 按下F12 在按Console 可以在该面板进行js代码编写,本篇代码都是在该面板上运行的

数值类型(number)

var a = 11
var b = 11.11
// 如何查看当前数据类型
typeof a;

js 中没有整数型、浮点型概念 都叫 number数值型

// 特殊的 NaN: 数值类型 表示的意思是“不是一个数值”   NOT A NUMBER

parserInt('11.11') = 11
parserInt('11saf') = 11
parserInt('as11') = NaN (意思就是该数是数值类型 但是不知道是啥)

字符类型(string)

# 定义字符串 单行字符串可以用'' 或者 "" 
var s = 'jason'
var c = "jason"
这样都是可以的

# 定义多行字符串  用键盘ese下面那个键括起来 
// 模板字符串
var a = `
jason
egon
legon
`
// 模板字符串除了可以定义多行文本之外 还可以实现格式化字符串操作
eg: var name = "小明"
	var age = "18"
	var ss = " my name is ${name} and my age is  ${age} ";
	用 ${变量名}  可以构造模板字符串 若${}里面的变量名不存在 则会报错

# 字符串的拼接
// 在python中不推荐你使用 + 做拼接 (效率低) 推荐使用join
// 在js中推荐你直接使用+做拼接


布尔值

1.在python中布尔值是首字母大写的
	True
	False
2.但是在js中布尔值是全小写的
	true
	false
 
 # 布尔值是false的有哪些
 空字符串、0、null、undefined、NaN

null与undefined

null
	表示值为空 一般都是指定或者清空一个变量时使用
		name = 'jason'
		name = null
undefined
	表示声明了一个变量 但是没有做初始化操作(没有给值)
	函数没有指定返回值的时候 返回的也是undefined

数值(类似于python里面的列表)

var l = [11,22,33]
undefined
typeof l
"object"

var ll = [11,'sdf',11.11,true]   //支持存不同类型的数据
undefined
typeof ll
"object"
ll[2] = 11.11  // 支持索引取值

var l = [111,222,333,444]
undefined
l.length
4
l.push(555)   // appented()
5
l
(5) [111, 222, 333, 444, 555]
l.pop()			//删除尾部元素
555
l
(4) [111, 222, 333, 444]
l.unshift(000)		// 在头部添加元素
5
l
(5) [0, 111, 222, 333, 444]
l.shift()			// 删除头部元素
0
l.slice(0,3)	    // 切片操作
(3) [111, 222, 333]
l.reverse()			// 倒序输出
(4) [444, 333, 222, 111]
l.join('$')   // 跟python相反 python的join是 ''.join()
"444$333$222$111"
l.concat([111,222,333])
(7) [444, 333, 222, 111, 111, 222, 333]
l.sort()
(4) [111, 222, 333, 444]
ll=l.concat([111,222,333])  // python里的extend
(7) [111, 222, 333, 444, 111, 222, 333]
ll.sort()
(7) [111, 111, 222, 222, 333, 333, 444]


# 三个重要的方法
l.forEach()
forEach(function(value, index, arr){console.log(value, index, arr)},l);// 对应python里面的map方法 映射
VM1270:1 111 0 (4) [111, 222, 333, 444]
VM1270:1 222 1 (4) [111, 222, 333, 444]
VM1270:1 333 2 (4) [111, 222, 333, 444]
VM1270:1 444 3 (4) [111, 222, 333, 444]

# 最多接收三个参数 元素 + 元素索引 + 元素的数据来源

2.splice()
ll
(7) [111, 111, 222, 222, 333, 333, 444]
ll.splice(0,2)   // 两个参数的时候 在0的位置开始删 删除两个元素
(2) [111, 111]
ll
(5) [222, 222, 333, 333, 444]
ll.splice(0,2,111)   // 三个参数的时候 在0的位置开始删 删除两个元素 然后再在删除的地方添加 111
(2) [222, 222]
ll
(4) [111, 333, 333, 444]

3.map()      // 跟forEach() 差不多的效果 只是语义不一样
 var l1 = [11,22,33,44]
undefined
l1.map(function(value){console.log(value)},l1)
VM1651:1 11
VM1651:1 22
VM1651:1 33
VM1651:1 44

运算符

# 比较运算符
	1 == '1'      # 弱等于  内部自动转换成相同的数据类型比较了
	true

	1 === '1'	   # 强等于 内部不做自动转换了
	false

# 逻辑运算符
	&&||!5 && '5'
'5'      		// 5 为真 真就拿右边的值

0 || 1
1				// 1 为真 所以拿右边的值

!5 && '5' 
5				// !5 为假 所以拿左边的值  

流程控制

var age = 10;
# if (条件) {条件成立之后指向的代码块}
if (age>18) {
	console.log('来啊')
}
# if-else
if(age>19){
	console.log('来啊')
}else{
	console.log('滚蛋')
	}
# ifelse ifelse
if(age<19){
	console.log('培养一下')
}else if(age<25){
	console.log('小姐姐你好')
}
else{
	console.log('你是个好人')
	}
# 在js中代码是没有缩进的
	()条件
	{}代码块

# switch语法         // 跟c一样
var num = 2;
switch(num){
	case 0:
		console.log('喝酒');
		break;
	case 1:
		console.log('唱歌');
		break;
	case 2:
		console.log('洗脚');
		break;
	case 3:
		console.log('按摩');
		break;
}	 

# 三元运算符
# python中三元运算符 res = 1 if 1>2 else 3
# JS中三元运算符  res = 1>2 ? 1:2;  // 跟c 一样

函数

# 有参函数
function func2(a,b){
	console.log(a,b)
}
func2(1,2)
func2(1,2,3,4)   # js中参数传多没有关系
func2(1)        # 传少也没有关系 会自动用undefined顶替

# 关键字 arguments
function func2(a,b){
	console.log(arguments)    # 能够获取到函数接收到的所有的参数
	console.log(a,b)
}

function func2(a,b){
	if(arguments.length<2){
		console.log('传少了')
		}else if (arguments.length>2){
		console.log('传多了')
	}else{
		console.log(a,b)
}
}


# 匿名函数		// 不常用
	function(){
		console.log('好好好')
	}
	var res = function(){     // 匿名函数只能先用变量存着
		console.log('好好好')
	} 

# 箭头函数( 需要了解)  和上面一样 主要用来处理简单业务逻辑
	# 单值
	var func1 = v => v;		//箭头左边的是形参 右边的是返回值 
	等价于
	var func1 = function(v){
		return v
	}
	# 多值
	var func2 = (arg1,arg2) => arg1+arg2
	等价于
	var func1 = function(arg1,arg2){
		return arg1+arg2
	}

函数的全局变量与局部变量

与python查找变量的顺序一模一样

对象

一切皆对象

自定义对象

* 你可以看成是python中的字典 但是js中自定义的对象要比python里面的字典操作起来更加的方便

# 创建自定义对象 {}
	# 第一种创建
	var d1 = {'name': 'jason', 'age':18}
	
	var d = {'name':'jason', 'age':18};
	undefined
	typeof d
	"object"       
	d['name'];
	"jason"
	d.name;				# 比python取字典的值更加的方便
	"jason"
	
	for(let i in d){
		console.log(i,d[i])
	}	# 支持for循环 

	# 第二种创建自定义对象的方式 需要使用关键字 new 
	var d2 = new Object();

	d2.name = 'jason'
	d2['age'] = 18;
	{name: "jason", age: 18}

Date 对象

let d3 = new Date()
Sat May 29 2021 22:47:55 GMT+0800 (中国标准时间)

d3.toLocaleDateString()      // 要转换成标准格式的时间 需要用到这个方法
"2021/5/29"

# 也支持自己手动输入时间
let d4 = new Date('2200/11/11 11:22:11:22')
d4.toLocaleDateString()
"2200/11/11"

# 时间对象具体方法
let d6 = new Date();
d6.getDate()		获取月
d6.getDay()			获取星期
d6.getMonth()		获取月份(0-11)
d6.getFullYear()	获取完整的年份
d6.getHours()		获取小时
d6.getMinutes()		获取分钟
d6.getSeconds()		获取秒
d6.getMilliseconds()获取毫秒
d6.getTime()		获取时间戳

json对象

'''
在python中序列化反序列化
 dumps		序列化
 loads		反序列化

在js中也有序列号反序列化
  JSON.stringify()			对应   dumps
  JSON.parse()				对应   loads
'''
 let d7 = {'name':'jason','age':18}	
 let res1 = JSON.stringify(d7)
 "{\"name\":\"jason\",\"age\":18}"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值