IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JavaScript基础总结 -> 正文阅读

[JavaScript知识库]JavaScript基础总结

目录

一、数据类型

1.变量声明

2.简单数据类型

2.1 数字型Number

2.2 字符串型String

2.3 undefined 和 null

3.获取变量的数据类型typeof 变量

4.数据类型转换

4.1 转换为字符串类型

4.2 转换为数字型

4.3 转换为布尔型

5.数据类型内存分配

5.1 内存可以看作分为了两块:栈和堆

5.2 简单/复杂类型传参

二、运算符

1.递增 ++,递减 -- 运算符

2.比较运算符

3.逻辑运算符

4.运算符优先级

三、流程控制

1.顺序结构

2.循环结构

2.1 双重for循环

2.2 while循环

2.3 do while循环

?????????简易的ATM机案例?

2.4continue

2.5 break ? ?退出整个循环

四、数组

1.数组长度,遍历数组

2.数组中新增元素

3.冒泡排序

五、函数

1.函数的声明

2.函数的参数

3.函数的返回值:return

4.arguments

5.作用域

6.预解析

?六、对象

1.自定义对象

1.1 调用对象的属性,方法

1.2 创建对象

1.3 for... in... 遍历对象

2.内置对象

2.1 查阅文档 ?https://developer.mozilla.org/zh-CN/

2.2 Math随机数

2.3 Date日期对象

?????????2.3.1 返回今天是星期几

?????????2.3.2 时间戳

?????????倒计时案例?

2.4 数组内置对象

????????2.4.1 添加删除数组元素

????????2.4.2 数组排序 sort

????????2.4.3 数组索引

????????????????1.数组去重?

????????????????2.查找字符串中某个字符所在位置以及出现的次数?

????????2.4.4根据位置返回字符

????????????????1.统计出现最多的字符和次数??


一、数据类型

简单数据类型(Number,String,Boolean,Undefined,Null)
复杂数据类型(Object)

1.变量声明

  • var a = b = c = 10;
    相当于 var a = 10; b = 10; c = 10; b和c没有var声明

  • 集体声明:var a = 10, b = 10, c = 10;

  • var a, b, c = 10 错误的声明方式

2.简单数据类型

2.1 数字型Number

  1. 八进制:数字前面加0

    十六进制:数字前面加0x

  2. NaN:非数字

    isNaN():验证是否非数字,是数字返回false,否则返回true

2.2 字符串型String

1.字符串转义符 \?

2. 获取字符串长度:字符串.length

3. 字符串拼接: ?+
? ?字符串 + 任何类型 = 字符串

4. 字符串型数字互相比较大小是从第一位开始比较 : ’121'<'25',所以要先转换为数字型

5. 字符串本身是不可变的,每次改变字符串的值其实是新开辟了一个内存空间来存放新的值,原来的字符串并没有变

2.3 undefined 和 null

1. undefined

  • 如果一个变量没有赋值,那它就是undefined
  • undefined + '我是字符串' = undefined我是字符串'
  • undefined + 数字 = NaN

2. null ? 空值

  • null + 'aaa' = null我是字符串'
  • null + 数字 = 数字

3.获取变量的数据类型typeof 变量

typeof ?变量
?

4.数据类型转换

4.1 转换为字符串类型

加号拼接转换方式为隐式转换

4.2 转换为数字型

1. parseInt(变量) ?得到的是整数,会去掉数字后边的单位
2. parseFloat(变量) ?得到的是浮点数,会去掉数字后边的单位
3. Number(变量)
4. 利用算数运算 - * /

4.3 转换为布尔型

Boolean(变量):
代表空,否定的值会被转换成false,其余值转换为true

5.数据类型内存分配

5.1 内存可以看作分为了两块:栈和堆

1. 简单数据类型存放在栈里,存放的是值本身(值类型)
2. 复杂数据类型先在栈里存放地址,这个地址指向堆里面的数据(引用类型)

5.2 简单/复杂类型传参

1. 简单类型传参:当把一个值变量作为一个参数传给函数的形参时,其实是把变量存放在栈空间的值复制了一份给形参,所以在函数内对形参修改都不会影响到外部变量
2. 复杂类型传参:其实是把变量在栈空间保存的堆地址复制给了形参,形参实参保存的是同一个堆地址,所以操作的是同一个对象

二、运算符

  • 算数运算符
  • 递增 ++,递减 -- 运算符
  • 比较运算符
  • 逻辑运算符
  • 赋值运算符

1.递增 ++,递减 -- 运算符

  • 前置递增,递减 ?++a
    先自加,再返回值
  • ?后置递增,递减 ?a++
    先表达式返回原值,后变量自加

2.比较运算符

  • == ?只要求值相等,默认转换数据类型
  • === 要求两侧的值以及数据类型完全一致

3.逻辑运算符

逻辑中断(短路操作)

  • 逻辑与 ?表达式&&表达式
    前一个表达式为真,则结果为第二个表达式的值;前一个为假,则为第一个值
  • 逻辑或 ?表达式||表达式
    前一个表达式为真,则结果为第一个表达式的值;前一个为假,则为第二个值

4.运算符优先级

1. 小括号
2. 一元运算符 ?++ ?-- ?!
3. 算术运算符 ?先 * / %后 + -
4. 比较运算符

  • 先 > >= < <=
  • 后 == ? ? ?=== ? ? ? ? ?!= ? ? ? ? !=.=

5. 逻辑运算符 ? ?先&&后||
6. 赋值运算符

三、流程控制

1.顺序结构

  • if...else if...else
  • switch
    switch循环中的case语句如果没有break,会继续执行下一个case语句,直到出现break

2.循环结构

2.1 双重for循环

  • 打印?案例利用字符串追加
  • 打印倒三角形案例
  • 九九乘法表

2.2 while循环

  • 输入我爱你结束,否则一直问

2.3 do while循环

  • 先执行do内的语句,再判断
  • do while 循环至少执行一次

?简易的ATM机案例

1. while循环
? ?
2. do...while循环
? ?

2.4continue

  • 退出本次循环,执行下一个循环

2.5 break ? ?退出整个循环

四、数组

1.数组长度,遍历数组

数组长度是数组中元素的个数,计算数组长度用length
遍历数组用for循环

2.数组中新增元素

筛选数组:将旧数组中需要的元素筛选出来追加给新数组

1. 利用一个初始值为0的变量,每次追加元素给新数组后,变量加1
? ?
2. newArray.length 是0
? ?

3.冒泡排序

利用两个for循环,外层for循环表示趟数,内层表示每趟比较次数

五、函数

1.函数的声明

  • function声明
    function 函数名(){
    
      函数体...
    
    }
  • 函数表达式
    var 变量名() = function(){
    
    ? ??? ?函数体...
    
    }

2.函数的参数

函数有形参和实参

  • 形参可以看作一个不用声明的变量,实参传递给形参看作给形参赋值,默认值是undefined
  • 形参实参个数不匹配情况:
  1. ? 个数相同:返回正确结果
  2. 实参比形参个数多:取到形参的个数(即:多出来的参数不管
  3. 实参比形参个数少:没有接收实参数据的形参默认为undefined
    结果为:传递的实参数据+undefined

3.函数的返回值:return

  • 相当于赋值:函数名() = return 后面的结果
  • return会中断函数,后边的代码不会执行
  • return只返回一个值,如果return后边有多个值,只返回最后一个值
  • 如果有多个值需要返回,return[x1,x2,x3]
  • 如果没有return,返回undefined

4.arguments

  • 不知道实参个数的时候使用
  • arguments是当前函数的一个内置对象,arguments对象中存储了传递的所有实参
  • arguments展示形式是一个伪数组
  1. ? 具有length属性
  2. 按索引方式存储数据
  3. 不是真正意义上的数组,不具有数组的push,pop等方法
  • 求任意个数的最大值

5.作用域

函数内部的变量为局部变量?

如果变量没有用 var 声明则为全局变量

6.预解析

  • js引擎运行js分为两步:预解析 ?代码执行
    预解析:js引擎会把js里面所有的 var 还有 function 提升到当前作用域的前面
  • 预解析分为 变量预解析(变量提升)和 函数预解析(函数提升)
  1. 变量预解析:把所有的变量声明提升到当前作用域的最前面,不提升赋值操作
  2. 函数预解析:把所有的函数声明提升到当前作用域的最前面,不调用函数

?六、对象

1.自定义对象

1.1 调用对象的属性,方法

1. 调用对象的属性:

  • ? ?对象名.属性名
  • ? ?对象名['属性名']

2. 调用对象的方法:对象名.方法名()

1.2 创建对象

1. 利用对象字面量创建对象
? ?

2. 用new Object 创建对象
? ?
3. ?构造函数创建对象(对象的实例化):可以批量生成
? ?

  • this 不能丢
  • 只要 new Hero()调用函数 就创造了一个对象

1.3 for... in... 遍历对象

k--key

2.内置对象

2.1 查阅文档 ?https://developer.mozilla.org/zh-CN/

2.2 Math随机数

2.3 Date日期对象

?2.3.1 返回今天是星期几

?2.3.2 时间戳

?倒计时案例

2.4 数组内置对象

2.4.1 添加删除数组元素

?筛选数组元素

2.4.2 数组排序 sort

2.4.3 数组索引

  • indexOf() ?查找给定元素的第一个索引 ?不存在返回-1
  • lastIndexOf() 查找给定元素的最后一个索引 不存在返回-1

1.数组去重

2.查找字符串中某个字符所在位置以及出现的次数

2.4.4根据位置返回字符

1.统计出现最多的字符和次数

有Typora的可以下载这个https://download.csdn.net/download/O3O_O3O_/21773228?spm=1001.2014.3001.5503

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 11:49:53  更:2021-09-01 11:51:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:05:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码