【笔记】查漏补缺-H5+CSS3+JS基础:JS基础
一、数据类型
1. 简单数据类型(基本数据类型)
- Number:数字型(整型+浮点型);
- 范围:Number.MIN_VALUE - Number.MAX_VALUE
- 特殊值:Infinity无穷大,大于任何数值;-Infinity无穷小;NaN非数值
- 判断是否为非数字:isNaN()
- 转换为:
- Boolean:布尔值
- 可以参与算术运算:true为1;false为0
- 转换:Boolean() (转为false:’’, 0, NaN, null, undefined)
- String:字符串类型
- 引号匹配:外双内单/内单外双
- 转换为String:隐式转换(x+"");x.toString();String(x)
- 转义符
- 长度:str.length
- 拼接:数值相加,字符相连
- Undefined:只声明未赋值
- Null:空值
2. 复杂数据类型:对象object
3. 检测数据类型:typeof
4. 运算符优先级
5. 简单数据类型(值类型)与复杂数据类型(引用类型)
- 值类型:
- 在存储时变量中存储的是值本身
- 存在于栈内
- 如string,number,boolean,undefined,null(typeof null → Object)
- 引用类型:
- 在存储时变量中存储的仅仅是地址(引用)
- 通过new关键字创建对象(系统对象、自定义对象)
- 存放在堆内
- 如Object, Array, Date等
二、流程控制分支
- 顺序结构
- 分支结构:根据不同的条件,执行不同的路径
1. 分支if
2. 分支switch
3. 三元表达式 - 循环结构
1. for(初始化变量;条件表达式;操作表达式) { 循环体 }:计数有关的循环 - 双重for循环(外层循环一次,内层循环全部执行)
1. 正三角形 (var j = 1; j <= i; j++)
2. 倒三角形 (var i = j; j <= num; j++)
3. while(条件表达式){ 循环体; 操作表达式}:条件表达式为true,一直执行
4. do {循环体;} while(条件表达式)循环:先执行一次循环体;条件表达式为true,一直执行
5. contiue和break
三、数组
- 创建数组:
a. var attr = new Array()
b. var attr = [] - 数组内数据(数组元素)用逗号分割,可以是任意类型
- 获取数组元素:
a. 索引:attr[0]
b. 越界:undefined - 遍历数组(数组长度:attr.length)
- 新增元素
a. attr.length = xxx
b. attr[x] = “xxx” 或 attr[attr.length] = “xxx” - 冒泡排序
四、函数
- 声明函数:函数名一般是动词;函数不调用,自己不执行
- 调用函数
- 参数:
a. 形参、实参
b. 实参 > 形参,会取到形参的个数,多的实参部分舍去
c. 实参 < 形参,没有接受的变量定义为undefined(数字NaN) - return 终止函数;只能返回一个值,若多个只返回最后一个
- arguments:当前函数的内置对象,存储了传递的所有实参
a. 伪数组:具有length属性;按索引方式存储;没有真正数组的方法
b. 只有函数才有,且每个函数都内置好了 - 声明方式
a. 命名函数:利用函数关键字自定义函数
b. (匿名函数)函数表达式:var 变量名 = function() {} - 作用域(es6之前):
a. 全局作用域、局部作用域
b. ES6:块级作用域
c. 作用域链:内部函数可以访问外部函数的变量,且采用链式查找方式(就近原则) - 预解析
a. js引擎会把js里面所有var和function提升到当前作用域的最前面
b. 分为:
i. 变量预解析(变量提升):将所有的变量声明提升到最前,不提升赋值操作
ii. 函数预解析(函数提升):把所有的函数声明提升到最前,注意匿名函数的使用!
iii. 案例1
iv. 案例2
五、对象
- 对象由属性和方法组成:
a. 属性:事物的特征,常用名词;采用键值对形式;多个属性用逗号隔开;方法冒号后是匿名函数
b. 方法:事物的行为,常用动词 - 创建方式:
a. 字面量:var obj = { name: “”, age: 1 }
b. new Object:var obj = new Object(); obj.name = “”; obj.age = 1
c. 构造函数:
a. 定义:特殊的函数,主要用来初始化对象
b. 语法形式(构造函数名首字母大写):function 构造函数名() { this.属性=值; this.方法 = function(){} }
c. 调用(无需return):var 变量 = new Star(构造函数名) - 调用:
a. 调用属性:对象名.属性名; 对象名[‘属性名’]
b. 调用方法:对象名.方法() - 变量和属性:均是用来存储数据
a. 变量:单独声明并赋值,使用时直接写变量名,单独存在
b. 属性:在对象中不需要声明,使用时必须是:对象.属性 - 函数和方法:均是实现某种功能
a. 函数:单独声明,使用函数名()调用,单独存在
b. 方法:在对象内,调用:对象.方法() - 构造函数和对象
a. 构造函数:泛指某一大类(class),抽取对象的公共部分,封装到函数内
b. 对象:特指某一个,通过new关键字创建对象(实例化) - new关键字执行时做四件事:
a. 在内存中创建一个新的空对象
b. 让this指向这个新对象
c. 执行构造函数内代码,给新对象添加属性和方法
d. 返回这个新对象(无需return) - 遍历对象:for(var k in obj) { k(属性名); objk}
六、内置对象
- 对象类型:自定义对象、内置对象、浏览器对象
- js中内置对象:Math、Date、Array、String等
- 查文档:MDN/W3C https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
- Math数学对象
a. 不是构造器,方法都是静态的,可以直接使用里面的属性和方法
b. 取整(四舍五入:.5特殊,往大了取)
c. 随机数:方法:random();区间:[0,1);无参数,返回随机小数 - 日期对象
a. 是构造函数,需要new创建对象:var date = new Date();
b. 参数常用写法
i. 数字型(2022, 03, 22) → 比实际月份大一个月
ii. 字符串型(‘2022-03-22 16:57:8’)
c. 时间戳(总的毫秒数):距离1970.1.1
i. 通过date.valueOf();date.getTime()
ii. 简单写法 +new Date()
iii. H5新增:Date.now() - 数组对象
a. 创建数组:字面量;new Array
b. 检测是否为数组:instanceof运算符;内置方法(H5新增)Array.isArray()
c. 添加数组元素,返回值为数组长度
i. 末尾添加push,返回值为数组长度:attr.push(x,y,z)
ii. 开头添加unshift,返回值为数组长度:attr.unshift(x,y,z)
d. 删除数组元素,返回值为被删除的元素
i. 删最后一个元素:attr.pop()
ii. 删第一元素:attt.shift()
e. 翻转数组:attr.reverse()
f. 冒泡排序
i. 按位数(逐个字符)升序:attr.sort()
ii. 冒泡排序(升序a-b;降序b-a):attr.sort(function(a,b) ){ return a - b;}
g. 数据索引(只返回第一个满足条件的索引号,若不存在返回-1):
i. 正序查找:arry.indexOf(“xxx”)
ii. 倒序查找:arry.lastIndexOf(“xxx”)
h. 数组去重:遍历旧数组,并与新数组查询,若indexOf为-1,则push如新数组
i. 转换为字符串
i. 逗号分割:arr.toString()
ii. 任意分隔符:arr.join(’&’)
j. 连接两个数组,返回新数组(不影响原数组):concat()
k. 数组截取:slice(begin,end)
l. 数组删除:splice(开始位置,个数) - 字符串对象
a. 基本包装类型:将简单数据类型包装成为复杂数据类型,使基本数据类型有了属性和方法
b. 字符串不可变:字符串内值不可变,实际上看到的改变内容是地址改变,即在内存中新开辟了内存空间
c. 根据字符返回位置(只找第一个):字符串所有的方法都不会修改字符串本身,操作完成会返回一个新的字符串
i. indexOf(‘要查找的位置’, 索引位置):正序查找,返回位置索引号,找不到-1
ii. lastIndexOf(‘要查找的位置’, 索引位置):倒序查找,返回位置索引号,找不到-1
d. 根据位置返回字符
i. charAt(index):返回指定位置的字符
ii. charCodeAt(index):返回指定位置处字符的ASCII码
iii. str[index]:返回指定位置处字符,H5新增
e. 字符串操作方法
i. concat(str1, str2, …):连接两个或多个字符串,等效于+
ii. substr(start, length):从索引号start位置开始,抽取length个字符
iii. slice(start, end):从start位置开始,截取到end位置(不含)
iv. substring(start, end):从start位置开始,截取到end位置(不含),不接受负值
v. 转换大小写:toUpperCase() / toLowerCase()
【笔记】查漏补缺-H5+CSS3+JS基础:JS基础相关推荐
- C语言学习笔记---查漏补缺
1.强制类型转换表达式:(数据类型) (表达式) 2.C语言的头文件:C语言的头文件中包括了各个标准库函数的函数原型.因此,凡是在程序中调用一个库函数时,都必须包含该函数原型所在的头文件. 表达式:# ...
- C/C++基础查漏补缺(八)----------寒假学习笔记(八)
寒假C语言基础查漏补缺笔记(八) 本系列文章是基于自身的编程基础而编写的,其内容并非适用于所有人,请海涵~ 不过内容应该包括了所有的考点.用法,初学C/C++的大学生或者noip入门级选手可以以此作为 ...
- C/C++基础查漏补缺(一)----------寒假学习笔记(一)
寒假C语言基础查漏补缺笔记(一) 本系列文章是基于自身的编程基础而编写的,其内容并非适用于所有人,请海涵~ 不过内容应该包括了所有的考点.用法,初学C/C++的大学生或者noip入门级选手可以以此作为 ...
- C语言——基础查漏补缺(三):谭浩强红书刷题笔记大杂烩
相关文章: C语言--基础查漏补缺(一):超长文帮你理清一些概念 C语言--基础查漏补缺(二):<C程序设计试题汇编>应试概念总结 C语言--基础查漏补缺(四):利用<挑战程序设计竞 ...
- Mysql查漏补缺笔记
目录 查漏补缺笔记2019/05/19 文件格式后缀 丢失修改,脏读,不可重复读 超键,候选键,主键 构S(Stmcture)/完整性I(Integrity)/数据操纵M(Malippulation) ...
- Java基础查漏补缺(2)
Java基础查漏补缺(2) apache和spring都提供了BeanUtils的深度拷贝工具包 +=具有隐形的强制转换 object类的equals()方法容易抛出空指针异常 String a=nu ...
- java怎么快速补缺_Java基础查漏补缺(1)
Java基础查漏补缺 String str2 = "hello"; String str3 = "hello"; System.out.println(str3 ...
- JavaScript 基础知识查漏补缺
JavaScript 基础知识查漏补缺(持续更新) 数据类型 var bool = '4.3' > '11' console.log(bool) // 结果为true,二者都为字符串,字符串之间 ...
- 104道 CSS 面试题,助你查漏补缺(下)
作者:CavsZhouyou https://github.com/CavsZhouyou/Front-End-Interview-Notebook/blob/master/Css/Css.md 本部 ...
最新文章
- 维基链超级节点竞选的具体细节有哪些?
- 第 190 场力扣周赛
- java SSH编码规范
- win11快捷键失效怎么办 windows11快捷键失效的解决方法
- 智能优化算法:吉萨金子塔建造优化算法-附代码
- 简单使用Spring Boot+JpaRepository+hibernate搭建项目
- matlab表达一次函数,求指导。。。。如何用matlab拟合一次函数或者二次函数的公式和曲线。。...
- 空间梁单元C语言有限元编程,有人会有限元编程吗
- 读后感系列3:《人类简史》尤瓦尔·赫拉利(一)
- Java网页版仿QQ实现在线聊天功能
- Nginx 安装部署以及负载均衡
- 50.纯 CSS 创作一个永动的牛顿摆
- 2023年电工杯数学建模AB题思路分析
- 《微信小程序》微信小程序用java后台连接数据库进行操作。
- JavaScript大体学习思路
- 第二章--图形图像处理技术——基础理论和基本工具的使用
- Android画个颜色渐变的圆环玩玩
- 部分固态硬盘性能测试
- 【东华oj】复试练习题
- html百度地图获取城镇街道,百度地图定位得到当前位置(省、市、区县、街道、门派号码)...
热门文章
- 论文被《现代计算机》录用后,《现代计算机》旬刊征稿
- 自然语言处理中的数据获取与清洗总结(未更新完)
- 除了北上广深,程序员的归宿还有哪些城市?
- 天勤计算机网络题目pdf百度云,天勤408真题与8套模拟卷PDF打印版
- 每日学术速递5.15
- 如何发起一个HTTP请求,发送HTTP请求的几种方式
- 张飞硬件设计与开发笔记(1):电路中阻值的计算和电源电路中滤波电容的计算
- Linux ls -l输出文件信息详解
- *.py,*.pyc,*pyo
- 计算机在我们日常生活中越来越重要英语翻译,职高英语翻译练习 翻译练习二...