Javascript零散知识点
- javascript可以不写分号,但必须换行,不换行页面会报错.
- 书写的规范,每行结尾必须加分号,必须换行。
- console.log:在控制台中输出内容.
- prompt(“弹出的提示信息”):在页面上弹出一个输入框.
- typeof:判断数据类型。
- 变量的取值:
- 0~9,a~z,A~Z,_,$,
- 不能用关键字和保留字并且开头不能用数字。
- 保留字是关键字的备用,保留字和关键字会有高亮,很容易辨别。
- javascript代码在执行的时候会先检查代码是否有错,检查没错的话再从上至下执行。
- 变量:用来存储数据,并且可以存储任意类型的数据。
- boolen:bool类型,判断对错。取值只有两个:true和false;
undefined:为定义的。
创建变量时,当省略var时,会创建一个全局变量,不推荐使用.
function test(){ message = "hi"; // 全局变量。 test(); alert(message); //"hi"
- 五种数据类型:undefined、null、boolean、number、string以及object;
- 使用cmd+option+j可以打开console;
- 直接量:可以直接使用的数据;
NaN: Not a Number:是计算发生错误时的一种状态,也是number类型的数据;
- 判断是否是NaN的一个关键字:isNaN:是非数字;
- 如果结果是NaN,那么isNaN返回的结果是true,如果不是,那么isNaN返回false;
var a = "abc"; console.log(isNaN(a)) //返回true
- 前自增:先自增,再运算;
- 后自增:先运算,再自增;
- 记忆诀窍:加号在前面(前自增)就是先加再计算,加号在后面(后自增)就是先计算再加;
- 逻辑运算符也有自己的优先级:> !&& > ||;
- prompt接受到的内容是string类型;
- 自增一一般就算两层,超过两层一般是不使用的(不同的开发环境,产生的结果也是不一样的);
- 数据类型转换:
显式转换
- a.Number转换
- 如果转换的内容本身不是一个数值类型的字符串,那么在转换的时候结果是NaN.
- 如果要转换的内容是空的字符串,那以转换的结果是0.
- 如果是其它的字符,那么将来在转换的时候结果是NaN.
var a = "123" a = Number(a); //此时a的类型为number
- parseInt()
- 忽略字符串前面的空格,直至找到第一个非空字符,还会将数字后面的非数字的字符串去掉。
- 如果第一个字符不是数字符号或者负号,返回NaN
- 会将小数取整。(向下取整)
var a = "123"; a = parseInt(a) //此时a的类型为number
- parseFloat()
- 和parseInt完全一样,只是会保留小数点
- b.String
- 可以将其他的数据类型转换为字符串类型:a = String(a);
- c.Boolean()
- 可以将其他的数据类型转换为boolean值:a = Boolean(a);此时a的值只有true或false;
隐式转换
- 转number:
- 加减乘除都可以让字符串转换成number类型
- 注意:使用”+”转换时,“+”号必须写在要转换的内容前面;
- 转string:
var a = 123; a = a + ""; //此时a的数据类型为string
- 转boolean:
- 所有的数据都可以转换为boolean类型,值为true,除了false、0、””、NaN、undefined
var a = 123; a = !!a;//此时a的数据类型为Boolean
“==”只关注内容,而不关注数据类型;”===”(全等于)比较的是内容和类型;
- html、css代码不能调试,只有js代码能调试;
- switch-case流程控制语句中,case后面只能接具体的数值或内容;
- 如果所有的case都不满足,就执行default的内容
- default可以不写,而且不用写判断值(作用和else类似);
三元运算符:: a?b:c等价于一下代码:
if (a == true) { b; } else { c; }
alert的参数只能是字符串.
- 要时刻注意prompt输入的内容是字符串内容,使用加法时一定要在通过prompt得到的数字前加”+”号;
无限循环的一种方式:
while (true) { alert("这会不断弹出来"); }
if else语句中可以只有if语句,省略else语句;
- 堆和栈:
- 简单数据类型:内容和名称直接保存在栈中,
- 复杂数据内容:内容保存在堆中,名称和内容的地址保存在栈中;
- js中的数组可以存储任意类型的数据,包括对象;