JS基础知识(补)

2017年3月30日 19:15:00
变量
程序都是在内存中运行;
只要在程序中临时存储诗句,都要放在变量中

任何程序都是IPO:Input Process Output 读取,处理,存储 数据 数据 数据

声明:在内存中开辟一个存储空间

常亮:一旦创建,值不可改变的特殊变量
const pi = 3.1415926; 定义一个常量

JS是弱类型:变量本身没有类型,只有变量中的值才有数据类型;
弱类型:1.变量声明时不需声明数据类型,
今后可能保存任何类型数据;
2.数据类型见可以自动类型转换
原始类型:数据保存在变量本地!
< ================================================== >
Number类型:表示一切用于比较或数据计算的数字;
字符串类型,一般不要改变,如果改变就创建新字符串,抛弃旧字符串

数据类型转换-->
    隐式转换:程序自动转换数据类型;
            +:只要有字符串参与,最终结果一定是字符串;哪怕是字符串+true/false,就是'stringtrue';
                如果没有字符串,一切都为数字计算;true-->1;false-->0


    强制转换:调用程序的函数手动转换类型
            str.toString();------> 变量.toString();
            <   ========================    >
            Numner(xy); ---->转Number类型;
            <   ========================    >
            patseInt(‘666’);  --->转整数类型;
                例:var num = parseInt("str");
                从第一个字符向后读,如果获取数据就往后读取,
                如果第一个字符不是数据,就说明不能转--->NaN;
                如果第一个是空格,忽略;
                NaN: Not a Nunber;
                只能读取整数parseInt("22.5"); ---> 22
                如果字符串为空,则返回NaN;
            <   ========================    >
            parseFloat("222.2222")  ---->  转小数类型
                用法和parseInt 一样,区别就是它能读出小数点;
                但是只能读取一个小数点,如果是2.2.2.2;---->2.2
                如果是.55;那么JS会默认为前面有一个0---->0.55;
                如果是'222.0';那么parseFloat也会知道这是个整数---> 222;

            /*         ==================       */
                    凡是通过页面获得的数据,都是字符串,必须先转换再计算;
            /*         ==================       */

        只要比较不确定的类型,又不希望自动类型转换时,就用===
        NaN和任何数字做比较,永远返回false;
        isNaN(x):这是一个方法,用于判断一个数组是否为NaN;
            如果是NaN返回true,不是则返回false;
            如果是数字返回false,如果不是数字返回true;
            alert(isNaN(''));  false 是数字,在比较运算符会自动类型转换,结果转换为0;
            结论是在isNaN 中,能自动转换为数字的,结果都是false,如果不能自动转换为数字,都返回false;
            isNaN(NaN);返回true ,JS isNaN 设计的本意就是用来判断是不是non a number 的,所以肯定是true;

**作用域:一个变量的可用范围!**
    函数作用域:也叫局部作用域:声明在方法内部的变量或方法的参数变量都叫局部变量;
    全局作用域:直接声明在全局作用域中的变量,叫全局变量,
        window对象:是整个网页的全局作用域对象;
    值传递:将一个变量的值赋值给另一个变量,其实将原变量中的值,复制一份给新变量;

    注意:对为声明的变量赋值:JS会自动在全局创建该变量!
        !!!!!!!!!!!!!!!极力不推荐;

null:一个对象没有指向任何数据;
何时使用null:主动释放对象!主动释放的对象不能被找回;

**垃圾回收:js引擎自动销毁不再被引用的对象!**
垃圾回收程序:随JS程序运行而后台同时运行!
    相当于饭店吃饭,服务员会在你吃饭之后回收!;

@@@@@@@@@@@@

引用类型:都在存储在堆里面,对应的一个值映射到栈里面
    用的时候对应栈里面去找;

重新赋值:将新对象地址保存到原变量地址中替换地址,旧地址释放,等待垃圾回收;

全局变量的生命周期和网页的生命周期一样;

局部变量的生命周期和当前作用域环境栈有关,作用域创建,局部变量一同创建,作用域结束,局部变量一同消失;

@@@@@@@@@@@@@@@@@@@@@

冒泡排序:从第一个开始,从小到大排序,小数放前,大数放后;

var arr = [1,5,2,74,9,5,1,845,123,4];
for(var i = 0;i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值