JavaScript学习
2021-07-29 11:56:16 2 举报
AI智能生成
前端学习必备基础,暑期带你不走偏三天快速学习JavaScript
作者其他创作
大纲/内容
变量+数据类型
数据类型
简单数据类型
数字类型
numbder
进制
浮点数
范围
字符串类型
string
概念
带有 '' 或者 "" 包裹
长度
length
转义符
1. 字符串可以嵌套,,但是不能嵌套自己
\' => '
\" => "
\\ => \
+拼接
字符串+字符串
拼接
数字 + 数字
加法
字符串 + 数字
拼接
总结 :只要出现字符串和 + ==> 拼接
布尔类型
boolean
true
false
undefined
undefined
只声明,没有赋值
null
object
特殊
复杂数据类型
object
array
操作符
运算操作符
+ - * / %
赋值运算符
= += -=
一元运算符
自增
++
num++
先用
再加
++num
先加
再用
自减
--
比较运算符
> < >= <=
== 和 ===
==
比较额内容
===
比较的是内容 + 类型
!=
不等于
只要内容不相等就为true
逻辑运算符
&&
与 且
一个为真,,并且 另外一个也为真,
true
||
或
一个为真,或者另外一个也为真
true
!
非
取反
流程控制
顺序结构
分支结构
if语句 (重点)
单独的if语句
场景
处理一种情况
结构
if..else
场景
处理2种情况
结构
if..else if..else
场景
处理3+种情况
结构
三元运算符 (重点)
子主题 1
返回值
switch语句
结构
场景
if
判断范围
switch
具体值
三元运算符
简单的if语句
最大值 最小值
循环结构
while
结构
注意
一定要有个中止条件,不然会一直循环下去=> 死循环
先判断,再执行
do..while
结构
先执行一次,再判断条件
for (太重要了)
结构
场景
for
确定具体次数
while
可以不执行一次的
do..while
至少会执行一次的
双重for循环
外层for决定的是行数
里层for决定的是列数/ 每行的个数
数组
break和continue
break
结束整个for循环
跳出大括号
continue
结束当前次循环
继续下一个循环
数组
数组的概念
多个元素的集合
特点
有长度
有顺序
用途
存储大量的数据
创建数组
构造函数
创建空数组
var arr = new Array()
创建有内容的数组
var arr = new Array(1,4,7)
创建有长度的空数组
var arr = new Array(4)
字面量
创建空数组
var arr = []
创建有内容的数组
var arr = [1,4,7]
数组的长度和下标
长度
arr.length
下标
开始
0
结束
arr.length-1
取值和赋值
取值
结构
数组名[下标]
1. 下标存在
直接取
2.下标不存在
undefined
赋值
结构
数组名[下标] = 值
下标存在
修改
下标不存在
添加
追加数据
arr[arr.length] = 值
arr.push()
遍历数组
代码
冒泡
初级版
代码
中级版
代码
优化版
代码
函数
函数的声明与调用
声明
function 函数名() {}
var f = function () {}
执行/调用
函数名()
toString()
console.log()
alert()
方法=函数
作用域
全局作用域
函数外部
全局变量
任意地方都能访问
函数作用域
函数内部
局部变量
只能在函数内部访问
注意
隐式全局变量
num = 12;
像这种只赋值,没有声明的
也属于全局变量
了解一下
ES6这个取消掉了
一定要声明 : var
如果局部变量和全局变量`声明`的都一样,,只是赋值不一样,
这是两个
分支主题
函数内部访问的话: 访问局部的
预解析
变量提升
var num = 12;
把声明提升,,赋值不提升
提升到`当前作用域`的最前面
function test() {}
函数的声明提到最前面
函数同名
后面的会覆盖前面的
函数与变量同名
函数优先
匿名函数
场景
1. 声明
2. 传参
3. 返回值
4. 自调用 (自执行)
防止全局变量污染
函数是一个类型
function ()
基本数据类型
数字
number
字符串
string
布尔
boolean
undefined
undefined
null
object(特殊)
复杂数据类型
函数
function
一等公民
数组
object
对象
object
typeof
赋值
可以作为参数 传递
可以作为返回值
函数的返回值
返回值也是可有可无的
递归函数
函数调用自己,这种无限循环调用下的情况就叫递归
函数的参数
参数可以有可无
对象
对象的概念
一组无序的键值对集合
用途 : 存储一些无序的数据
对象的初体验
{}
[]
键值对
属性名 : 属性值
用逗号 , 隔开
创建对象的几种方式
单独创建
字面量
创建空对象
创建有内容的对象
构造函数 Object
创建空对象
创建有内容的对象
批量创建
工厂函数
代码
自定义构造函数
代码
new的作用
1. 创建一个空对象
2. this指向了这个空对象
3. 执行构造函数
添加属性和方法
实例化属性
4. 返回这个新对象
构造函数一般和new使用
this
this指向的就是调用这个方法的对象
对象的属性操作
增
结构: 对象名.属性名 = 值
属性之前是不存在的
删
delete 对象名.属性名
改
结构 : 对象名.属性名 = 值
属性之前是存在的
查
结构 : 对象名.属性名
.
`的`
obj.name
obj这个对象的 name属性
点语法和 [] 语法的区别
点语法
结构 : 对象名.属性名
结构 : 对象名.属性 = 值
总结 : 对象名.属性名 ( 属性名 类似这个变量 不是字符串 )
[]语法
结构
对象名 [ 属性字符串 ]
obj['name']
var key = 'name'; obj[key]
场景 : 遍历对象
值类型和引用类型
值类型
变量存储的是值本身
传递的话也是传的是值本身
例子
简单数据类型/ 基本数据类型
引用类型
变量存储的是地址
复杂数据类型
传递的话,,传的是地址
例子
查看类型
基本数据类型
typeof
复杂数据类型
数组
instanceof
constructor
对象
constructor
函数
typeof
内置对象
Math
PI
Math.max()
Math.min()
Math.ceil()
Math.floor()
Math.round()
Math.random()
Math.abs()
Math.pow()
Math.sqrt()
随机颜色
Date
1. 创建日期
var date=new Date()
var date = new Date("2018-04-18 00:00:00")
var date = new Date(2018, 3, 18, 0,0,0)
var date = new Date(时间戳)
2. 获取日期的指定部分
date.getFullYear()
date.getMonth()+1
date.getDate()
date.getHours()
date.getMinutes()
date.getSeconds()
格式化一个日期
3. 时间戳
用于计算时间差
1. 统计代码的运行时间
2. 倒计时案例
Array
arr.push()
arr.pop()
arr.unshift()
arr.shift()
arr.join()
arr.reverse()
arr.sort(function(a, b){return a -b;})
arr.concat()
arr.slice()
arr.splice()
arr.indexOf()
arr.lastIndexOf()
Number
toString()
tofixed(2)
Boolean
toString()
String
可以遍历,通过下标来访问
indexOf
lastIndexOf
trim()
toUpperCase()
toLowerCase()
concat
slice
substring
substr
split
replace
0 条评论
下一页