2020年12月14日 数据类型
JS的变量声明方式统一为:
1 | var a; |
其数据类型在程序运行中确定,如可进行初始化:
1 | var a = 10;// 表明为Number类型 |
最独特的一点是变量的类型可以随意切换,如:
1 | var a = 10; |
是被允许的。
五种数据类型
number, string, boolean, undefined, null
可以用关键字typeof获取数据类型:
1 | var num = 10; |
重要地,由prompt取得的数据均属于string型:
1 | var age = prompt('请输入年龄:'); |
字符串型
获取字符串长度
1 | var str = 'I am learning JS.' |
字符串的拼接
1 | console.log('我是' + '菜鸡'); |
并且强大的一点在于字符串和其他类型相拼接,最终结果是字符串
1 | console.log('我今年' + 18); |
并且也当然不局限于两个对象和字面量
1 | var age = 18; |
数据类型转换
其他–>字符串
1.变量.toString()
1 | var num = 10; |
2.String(变量)
1 | var num = 10; |
3.利用拼接字符串的方法(隐式转换,most frequently used
1 | var num = 10; |
其他–>数字
1.转换为整数parseInt()
1 | console.log(parseInt('3.14'));// 输出3 |
初级应用可以把prompt获取的数据转换为number!
2.转换为小数parseFlaot()
1 | console.log(parseFlaot('3.14'))// 这样才能输出3.14而不被*割 |
3.Number(变量)
1 | var str = '18'; |
4.利用四则运算符(除“+”外)(隐式转换
1 | console.log('18' - 1);// 输出数字17 |
//故想实现简单加法器(读取两个输入再求和),必须将输入数据先转换为数字型才能求和,而减法器等则不需要
其他–>布尔
唯一方法:Boolean(变量)
代表空、否定的值都会被转换为false, 如’’、0、 NaN、null、 undefined
其余值则均被转换为true
运算符
等于运算符 == 和大于小于大于等于小于等于运算符,默认转换类型,如:
1 | cosole.log(18 == '18')// 输出true,且默认将字符串型转换为数字型 |
而对于全等符号 === :
1 | console.log(18 === '18')// 输出false,因为数据类型不同 |
12月17日 数组
创建方式
1 | var arr = new Array();// 1.利用new创建一个空数组 |
!important JS中的数组可以含有数据类型不同的值,即类型无限制
访问元素
利用下标访问,同C
数组长度
数组名.length,如:
1 | var arr = [1, 2, 3]; |
新增元素
改变length属性,数组扩容,新增位置未赋值前为undefined:
1 | var arr = [1, 2, 3]; |
或是直接通过下标追加元素:
1 | var arr = [1, 2, 3]; |
! important 任何时候都不要对数组名赋值,否则会覆盖掉所有数据!
应用:获取5次用户输入并存入数组
1 | var arr = [];// 刚开始length是0 |
12月20日 函数
声明方式
1 | function 函数名( 形参1, 形参2 ...... ) { |
arguments的使用
当不确定有多少参数需要传递时可以用每个函数的内置对象arguments来实现,其存储了传递的所有实参:
1 | function fn() { // 括号内不写形参 |
! important arguments是伪数组,它具有length属性、按照索引方式储存(可以循环遍历)但是没有真正数组的一些方法如pop()、push()等
2021年1月29日 JS预解析
JS引擎会把变量声明语句(var xx)和函数声明语句(function xx)整体提升到当前作用域最前面,如:
1 | fn(); |
即预解析分为变量预解析(变量提升)与函数预解析(函数提升),但也仅提升声明而不提升赋值,
赋值属于代码执行部分,而代码执行是按照代码顺序进行,如:
1 | console.log(num);// 输出undefined |
这段代码相当于执行了:
1 | var num; |
1月30日 对象 —— 无序的相关属性与方法的集合
创建对象的三种方式:
1 | // 1.利用对象字面量 |
调用属性/方法的方式:
1 | // 以对象 1.character 为例: |
遍历对象 :for—in循环
1 | for(var k in character) { // 习惯于使用k/key |
2.2 内置对象
Math对象
1 | Math.PI // 属性 圆周率 |
如何随机取出任意两整数间的整数?
1 | function getRandom(min, max) { |
也可借此函数实现随机点名:
1 | var arr = ['Takumi', 'Yuki', 'Mitsuha', 'Taki']; |
日期对象
1 | var date = new Date(); |
案例:倒计时
1 | function countDown(time) { |
数组对象
检测对象是否为数组(通常用于检测函数参数传递是否正确)
1 | 1. instanceof |
添加数组元素
1 | 1. push() 于数组末尾添加元素 |
删除数组元素
1 | 1. pop() 删除数组的最后一个元素 |
数组排序
1 | var arr = [4, 7, 13, 26]; |
获取数组元素索引
1 | var arr = [1, 2, 3]; |
案例:数组去重
1 | function unique(arr) { |
还有数组连接concat( )、数组截取slice( )、数组删除splice( )……
字符串对象
根据元素返回位置
1 | var str = 'Takumikun'; |
根据位置返回元素
1 | var str = 'Takumi'; |
案例:统计出现次数最多的字符
1 | var obj = {}; // 对象属性名代表字符 |
截取字符串
1 | var str = 'Takumi'; |
jk
- Post link: http://yoursite.com/2020/12/15/JavaScript%20%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/
- Copyright Notice: All articles in this blog are licensed under unless otherwise stated.
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub Issues