API:应用程序接口「后期讲的方法咋用就是API方法、后期从服务器基于一个地址获取数据也是一个API...」
MDN : developer.mozilla.org/zh-CN/
parseInt补充
- parseInt( string , radix ) 解析一个字符串并返回指定基数的十进制整数,
radix是2-36之间的整数,表示被解析字符串的基数。 - 语法
-
- parseInt(string, radix);
parsetInt([val],[radix])处理机制
- [val]必须是一个字符串,如果不,则也要默认转为字符串
- [radix]不设置(或者写的是零):正常都是按照10处理的,如果字符串是以“0x”开始的,默认值是16
- 先在[val]中,找到所有符合[radix]进制的内容(从左到右查找,直到遇到不符合的为止「不论后面是否还有符合进制的,都不查找来」)然后再把找到的内容看做[radix]进制,转换为十进制
- [radix]范围 2~36,除了0以外(0->10/16),不在这个范围内,结果都是NaN
EG:parseInt(“12px“,10)
- 在'12px'字符串中从左查找,找到所有符合10进制的内容「0-9」=>‘12’
- 把找到的'12'当作10进制,转换为10进制=>12
EG:parseInt(“12px“,2)
- 把'12px'中查找,找到所有符合2进制的「0-1」=>‘1’
- 把'1'看做2进制转换十进制 => 1*2^0=1
- 其他进制转为10进制
-
- 101这是一个二进制数
-
-
- 12^0+02^1+122->1+0+4=5
-
-
- 八进制16进制转换规则和二进制转换一样
alert补充
- alert/confirm/prompt都是要把输出的内容先转换为字符串,然后在输出
- alert是一个内置函数,作用:把一个值变为字符串,然后让浏览器弹出个框框,最后把字符串输出
- alert()把函数执行做的就是这个事情,但是他的返回值是undefined
=>控制台输出的是undefined
\
等号详解
- = (赋值)
var num =10;
if(num=20){
//赋值操作的结果是true「先给num赋值20,然后在判断num的值是true/false」,此时也把num改为20了,条件也成立
}
- == != (用来做比较)
A==B值比较
@1 A/B类型一样,则直接赋值即可
@2 A/B类型不一样,则需要先转换为相同的数据类型在比较
规则:对象==字符串 对象转换为字符串
null==undefined 结果是true,但是null或者undefined和其他任何值都不相等
NaN!=NaN NaN和自己本身也不相等,和谁都不想等
剩下所有两边类型不一致的情况下,都是转换为数字,然后在比较
\
console.log(null==0)//false
console.log(null==undefined)//true
console.log(undefined== "");//false
console.log([12]=='12');//[12]->'12'=>true
console.log(true==2);//1==2=>false 注:此处不能按布尔转换,要按照比较的规则来比较
- === !== (绝对相等)
A===B 绝对相等
@1 A/B类型一样,则直接比较值即可
@2 A/B类型不一样,结果是false,不会进行数据类型转换
null===undefined =>false 因为此处类型不一样
获取元素的方法
在整个文档中「获取的范围“上下文”」,我们基于元素的id获取一个“元素对象”
- “上下文“只能是document
【context】document.getElamentTagName在指定的上下文中,基于元素的标签名,获取一组元素集合
- 上下文可以是document,也可以不是
- @1 获取的结果是一个集合HTMLCollection
- 属于对象数据类型值,结构很像数组,但是不是数组,所以它被称为“类数组集合“
-
- 索引 0 存储的是第一个获取的dom元素对象
- length:存储的是一共获取来多少个
- divlist[索引]:获取其中的某一项“标准的对象键值对操作”
-
- var divlist = document.getElamentTagName('div')
在指定的上下文中,基于元素的样式类名「class=‘x’」获取一组元素集合,结果也是一个类数组
- var divlist = document.getElamentByClassName('box')
ES6新增的输出变量值
console.log(当前加的是${i}号汽油,加来${num}升,总共支付${price}元);//两个撇「反引号」这种字符串“es6模版字符串”,它的优势是:更方便字符串的拼接 ${变量/运算程序}
内存相关
- 浏览器加载页面,运行我们的JS代码
-
- 浏览器每打开一个新的页面都会在计算机的内存条中分配出两块内存:栈内存Stack&堆内存Heap
- 栈内存主要用于代码执行和存储原始值类型的值
-
- 堆内存主要用于存储对象类型值
\
\
\
原始值类型和对象类型的区别:
- 原始值类型,结构比较简单,直接存储到栈内存中即可,后续变量都是直接关联和操作这个值的“按值操作”「所以它也叫:值类型/基本数据类型」
- 对象类型,结构比较复杂,不能直接存储到栈内存中,需要在堆内存中单独开辟一个空间,来存储对象的键值对,而变量关联和操作的都是:堆内存空间的引用地址「16进制」“按引用地址操作“「所以它也叫:引用数据类型」
\
\