JS基础(3)

1、数据类型

变量:变量本身是没有值,我们赋给它什么值它就是什么值
查看变量的类型:typeof 东西

function () {
   var a = '我是谁';
  alert(typeof a);
}

六种数据类型
number 数字
string 字符串
boolean 布尔型

object 对象
undefined 未定义
function 函数

*** null -> 空对象 -> object

基本的数据类型:
不可拆分成其他的数据类型

number
    12:
    6 + 6
string
    'abc'
    'a' + 'b' + 'c'

复合的数据类型:

    object: 对象
    var arr = [1,'abc',true,function(){alert(1)}];
    可以拆出多种数据类型

变量和字符串的区别:
变量没有引号(')
字符换必须带上引号(')
*** 属性都是字符串

2、命名规范

匈牙利命名法:
    a). 首字母大写
        toChange
        toWidth
    系统:
        getElementById
        getelementbyid
    b). 有类型的前缀
        oDiv
        aBtn

常见的类型前缀:
    o-> object  oDiv    一个元素,一个对象
    a-> array   aBtn      一组元素
    i-> integer iCount  整数
    f-> float   fPrice  浮点数
    s-> String  sUserName 字符串
    b-> boolean bOk 布尔型
    fn-> function   fnSucc  函数
    re-> RegExp reEmail 正则

3、字符串转数字

三种显示转化

a. parseInt(字符串)
    '12' -> 12
    '12.5' -> 12
    '12abc' -> 12
    'abc'   -> NaN
工作原理:从左往右开始找,遇到非数字就停止(包括小数点), 如果第一个就不是一个数字,就返回NaN
b). parseFloat(字符串)
    '12' -> 12
    '12.5' -> 12.5
    '12abc' -> 12
    'abc' -> NaN
工作原理:从左往右开始找,遇到非数字就停止(不包括小数点), 如果第一个就不是一个数字,就返回NaN
c). Number(字符串)
    '12' -> 12
    '12.5' -> 12.5
    '12.5abc' -> NaN
    'abc' -> NaN
既能处理整数,也能处理小数,但是格式要求严格(必须是数字), 如果不是数字就返回NaN

隐式转化

以下都会触发隐式转化
- * / > < >= <= ==

尽量避免隐式转化

关于NaN

NaN: Not a Number
不是一个数字

特性:
a). NaN跟任何东西都不相等,包括自己
NaN == NaN -> false
b). 数据类型是number
typeof NaN -> number

怎么判断一个东西是不是NaN ?

    isNaN(东西)
        如果是非数字,就返回true
            isNaN(NaN) -> true
        如果是数字,就返回false
            isNaN(12) -> false

数字转字符串:
a). '' + number
b). number + ''

4、作用域

作用域:变量的
a). 全局变量
在程序的任何地方都可以访问
b). 局部变量
定义在函数里面,只能在函数的内部使用
c). 闭包
子函数可以使用父函数的局部变量

变量的遮蔽:
局部变量和全局变量同名
就近原则
在函数内部优先使用自己的变量

5、运算符

算数运算符:
    +  -  *  /
    %(取模) 取余数
        % 3  -> 0  1  2
        % 5  -> 0  1  2  3  4
        
        
赋值运算符:
    =   +=  -=  *=  /=  %=
    a = a + 10;
    a += 10;

比较运算符:
    > < >= <= == != === !==
    
    ==:   先做类型转化,再做比较
    ===:  严格的比较
        先比较数据类型
        全等
逻辑运算符:
    与(且) 或 非
    且: &&  并且
        条件1 && 条件2
        两个条件都必须满足

    或: ||  或者
        条件1 || 条件2
        两个条件只要一个满足就ok

    非: !  取反
        !true -> false

    判断两位数:
        >= 10 && <100
    判断周末:
        6 || 7

*想要改变运算符的优先级:使用小括号

6、流程控制语句

控制代码的走向

1、if语句

第一种:只写满足语句
    if (条件) {
        // 条件满足执行语句
        语句;
    }

第二种:if else
    if (条件) {
        // 条件满足执行语句1;
        语句1;
    } else {
        // 条件不满足执行语句2
        语句2;
    }

第三种:多个条件
    if (条件1) {
        语句1;
    } else if (条件2) {
        语句2;
    } else if (条件3) {
        语句3;
    } else if (条件4) {
        语句4;
    }.....

第四种:多个条件加默认语句
    if (条件1) {
        语句1;
    } else if (条件2) {
        语句2;
    } else if (条件3) {
        语句3;
    } else if (条件4) {
        语句4;
    } else {
        默认语句;
    }

2、swicth 语句

    switch(值) {
        case 情况1:
            语句1;
            break;
        case 情况2:
            语句2;
            break;
        case 情况3:
            语句3;
            break;
        ......
        default:
            默认语句;
            // break; 不要加
    }

3、if简写

一、
if (条件) {
        // 条件满足执行语句
        语句;
    }
简写以下:
1.条件 && 语句;
2.if (条件) 语句;

二、
if (条件) {
    // 条件满足执行语句1;
    语句1;
} else {
    // 条件不满足执行语句2
    语句2;
}

简写以下:
    三目运算:
    条件 ? 语句1 : 语句2; 

4、关于break && continue

一般是配合循环使用

break:终止、中断
终止整个循环,暴力的!

continue:继续
终止当前的循环,继续下一次循环

你可能感兴趣的:(JS基础(3))