JavaScript高级基础篇 ①
JavaScript基础 高级
2023-09-11 14:19:57 时间
javaScript~基础
✨文章有误请指正,如果觉得对你有用,请点赞收藏关注一波,谢谢支持😘
数据类型
数据类型的分类
分类:
- 基本数值类型
- Number: 任意数值
- String: 任意文本
- Boolean: true/false
- undefined: undefined
- null: null
- 引用数值类型
- Object: 任意对象
- Array: 特别的对象类型(下标/内部数据有序)
- Function: 特别的对象类型(可执行)
类型判断方法的使用:
- 方法一:typeof
- 注意 !typeof返回的是数据类型的字符串表达形式
- 可以区别: 数值, 字符串, 布尔值, undefined, function
- 不能区别: null与对象与数组
- 代码演示
- 方法二:instanceof
- 专门用来判断对象数据的类型: Object, Array与Function
- 注意!使用instanceof来判断其他类型时都返回false
- 代码演示
- 方法三:===
* 可以判断: undefined和null
* 代码演示
console.log(undefined===null) //false
console.log(undefined==null) //true
数据类型一些相关问题
- 问题一:undefined与null的区别?
- undefined:定义了但没赋值
let a=null;
* null:定义了但值为null
```javascript
let a=null;
* 问题二:什么时候给变量赋值为null呢?
* var a = null a将指向一个对象, 但对象此时还没有确定
* a = null 让a指向的对象成为垃圾对象
* 代码演示
```javascript
let a=null;
name="xiaoming"
age=18
a={
name:name,
age:age
}
a=null
数据_变量_内存之间的关系
- 1、什么是数据?
- 储存在内存中代表数据的特定信息,本质是0101二进制
- 具有可读可传递的基本特性
- 2、什么是变量?
- 值可以变化的量,由变量名与变量值组成
- 一个变量对应一块小内存, 变量名用来查找到内存, 变量值就是内存中保存的内容
- 3、什么是内存?
- 内存的空间是临时的, 而硬盘的空间是持久的
- 产生和死亡: 通电==>产生一定容量的存储空间==>存储各种数据和处理数据==>断电==>内存全部消失
- 内存分类
- 栈: 全局变量, 局部变量 (空间较小)
- 堆: 对象 (空间较大)
- 4、内存,数据, 变量三者之间的关系?
- 内存是一个容器, 用来存储程序运行需要操作的数据
- 变量是内存的标识, 我们通过变量找到对应的内存, 进而操作(读/写)内存中的数据
变量保存的值类型
- 代码演示及说明
let a=xxx;
xxx=基本数值类型
xxx=引用数值类型
xxx=变量
if xxx 是基本数值类型,那么a保存的就是这个数据
if xxx 是引用数值类型,那么保存的是这个引用数值类型的地址值
if xxx 是变量,
那么if 变量 是基本数值类型,那么a保存的就是这个数据
那么if 变量是引用数值类型,那么保存的是这个引用数值类型的地址值
关于引用数值类型的赋值变量问题
- n个引用变量指向同一个对象,通过一个引用变量修改对象内部数据, 另一个引用变量也看得见
var obj1 = {}
var obj2 = obj1
obj2.name = 'xiaoming'
console.log(obj1.name) //xiaoming
function f1(obj) {
obj.age = 12
}
f1(obj2)
console.log(obj1.age) //12
图解:
- 2个引用变量指向同一个对象,让一个引用变量指向另一个对象, 另一个引用变量还是指向原来的对象
var obj3 = {name: 'xiaoMing'}
var obj4 = obj3
obj3 = {name: 'JACK'}
console.log(obj4.name)//xiaoMing
function f2(obj) {
obj = {name: 'Bob'}
}
f2(obj4)
console.log(obj4.name) //xiaoMing
图解
引用数值类型
对象
- 1、什么是对象?
- 多个数据的集合体(封装体)
- 用于保存多个数据的容器
- 2、为什么要用对象?
- 便于对多个数据进行统一管理
- 3、对象的组成?
- 属性
- 代表现实事物的状态数据
- 由属性名和属性值组成
- 属性名都是字符串类型, 属性值是任意类型
- 方法
- 是特别的属性==>属性值是函数
- 属性
- 4、如何访问对象内部数据?
- 对象名.属性名 :编码简单, 但有时不能用
- 对象名 [‘属性名’] :编码麻烦, 但通用
- 5、 对象名 [‘属性名’]:应用场景
var p = {}
情形一:属性名不是合法的标识名
p.content-type = 'text/json' 不正确
p['content-type'] = 'text/json' 正确
情形二: 属性名不确定
var prop = 'xxx'
var value = 123
p.prop = value 不正确
p[prop] = value 正确
函数
- 什么是函数?
- 具有特定功能的n条语句的封装体
- 只有函数是可执行的, 其它类型的数据是不可执行的
- 函数也是对象
- 为什么要用函数?
- 提高代码复用
- 便于阅读和交流
- 如何定义函数?
- 函数声明
- 表达式
- 如何调用(执行)函数?
- test()
- new test()
- obj.test()
- test.call/apply(obj)
函数的调用图解:
回调函数
- 什么函数才是回调函数?
- 自己定义的
- 没有直接调用
- 但最终它执行了(在特定条件或时刻)
- 常见的回调函数?
- DOM事件函数
- 定时器函数
- ajax回调函数
- 生命周期回调函数
回调函数代码如下:
//1. DOM事件函数
var btn = document.getElementById('btn')
btn.onclick = function () {
alert(this.innerHTML)
}
//2. 定时器函数
setInterval(function () {
alert('到点啦!')
}, 2000)
立即执行函数 _ IIFE
- . 理解
- 全称: Immediately-Invoked Function Expression 立即调用函数表达式
- 别名: 匿名函数自调用
- 作用
- 隐藏内部实现
- 不污染外部命名空间
代码如下:
//1. DOM事件函数
var btn = document.getElementById('btn')
btn.onclick = function () {
alert(this.innerHTML)
}
//2. 定时器函数
setInterval(function () {
alert('到点啦!')
}, 2000)
函数中This的指向
- this是什么?
- 一个关键字, 一个内置的引用变量
- 在函数中都可以直接使用this
- this代表调用函数的当前对象
- 在定义函数时, this还没有确定, 只有在执行时才动态确定(绑定)的
- 如何确定this的值?
- obj.This()
- This()
- new This()
- This.call(thisObj)
- This.apply(thisObj1)
总结
以上就是javaScripta入门的基础知识,有问题请评论区留言,发现问题,解决问题,巩固自己的基础知识,这才是我写博客的原因之一,最后觉得这篇文章对自己有帮助请帮我点个赞,让我知道我的文章是可以帮助到别人的。
相关文章
- [转] 2016 JavaScript 发展现状大调查
- 第七节:语法总结(1)(自动属性、out参数、对象初始化器、var和dynamic等) 图片放大镜 JavaScript-基础 用javascript写原生ajax(笔记) 初遇 Asp.net MVC 数据库依赖缓存那些事儿 前端JS 与 后台C# 之间JSON序列化与反序列化(笔记)
- JavaScript 随机生成指定字符串长度
- JavaScript语言基础3
- JavaScript 基础了解
- 原生 javascript 基础回顾
- 前端基础 - JavaScript之表单获取焦点及失去焦点
- 前端基础 - JavaScript简介
- JavaScript 28. this 关键字
- 【JavaScript 零基础入门】内置对象 (一) ------ Math对象
- javascript基础
- JavaScript基础-第2章
- jQuery基础与JavaScript与CSS交互-第五章
- 《JavaScript数据可视化编程》—— 第1章 图像数据1.1 创建基础的柱状图
- 《深入理解JavaScript》——1.18 标准库的其他功能
- 《JavaScript开发框架权威指南》——1.4 查找、添加和删除Bower包
- 《AngularJS高级程序设计》——第5章 JavaScript基础 5.1准备示例项目
- 《HTML CSS JavaScript 网页制作从入门到精通 第3版》—— 第01章 HTML基础
- 《HTML5+JavaScript动画基础》——1.3 动态动画与静态动画
- 《HTML5+JavaScript动画基础》——第2章 动画的JavaScript基础 2.1动画基础
- 《HTML5+JavaScript动画基础》——导读
- JavaScript基础知识点——函数
- 简单模拟javaScript面向对象
- JavaScript之简易http接口测试工具网页版
- javascript基础(1)
- 华为OD机试 - 网上商城优惠活动(一)(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
- JavaScript目录
- JavaScript 模块导入导出(export与import)用法
- 学习Javascript闭包(Closure) by 阮一峰