js基础知识

来源:互联网 发布:网络部主要职责 编辑:程序博客网 时间:2024/05/29 08:01

<script>的属性:
type
src
charset
async = “async”异步,下载完后立即执行(可以省略但是不建议省略)
defer =”defer”异步,下载完没有立即执行,等到页面的所有代码都加载完解析和现实后开始执行

变量声明:
可以直接不声明直接赋值使用:a = 100;
建议使用:var a = 100;
(声明后存放到内存的栈中,js不可以直接操作内存地址,有别于c)

数据类型:
简单类型:
Number、String、Boolean、Null、Undifined//声明变量戴氏为赋值
复杂(引用)类型:
Object、Array、Date等

查看当前变量的数据类型:
typeof (name) 或者 typeof name

字面量:(弱语言脚本语言多用的逆推方法:鸭子理论[他的叫声像鸭子就可以说他是鸭子])我们js没有复杂的数据类型进行初始化,我们给其赋值时的数据类型便决定了其数据的类型。

注意:不要判断两个浮点数是否相等,var reasult = 0.1 + 0.2 //这个值不是0.3 而是0.300000000000000004 永远都不会与0.3相等 0.07*100 的结果为7.00000000000001
转换成整数进行比较

数值范围

内存是有限的:
最小值Number.MIN_VALUE = 5e-324
最大值Number.Max_value=1.7976031348623157e+308
无穷大: Infinity
无穷小: -Infinity

数值检测:
NaN非数值(Not a Number)

consloe.log(parseInt("abc"));//打印NaNconsloe.log("abc"/10);//打印NaN
isNaN()//判断是非为数字

字符串可以是“”也可以是‘ ’
获取字符串的长度为.length

console.log("\"abc\"");//输出"abc"

字符串是不可变的

var str = "hello";str = str + "world";console.log(str);//打印的是helloworld 但是不是同一个栈地址,地址并没有被重用,而是新开辟了一块内存区域将str现在的值方了进去,原来的str的内存由于没有被访问的机会,而被垃圾回收机制回收内存空间(回收时间不确定)
str = '';for(var i=0; i<10000; i++){    str +=i;}//内存大量无意义的消耗,而且循环之中垃圾回收是没有执行的(解决方案数组array)

Boolean类型的字面量只有两个,但是js的所有类型都可以与这个Boolean类型有等价的值

var reasult = Boolean("a");//truevar reasult = Boolean(100);//true
var message = 100;if(message){}//if会帮我们进行好转换

转换为false的:
空字符串、0、NaN、null、undefined(共同特点是没有具体的值)

//使用if直接判断是否为空值var a = "abc"if(a){}else{}