Js特点,数据类型及转换

特点

1) 不仅可以运行在浏览器,也可以运行在服务器【nodejs环境】
    浏览器
        动画、事件、表单验证
    服务器
        操作数据库、网络
        mysql
  
2) 可以减轻服务器的压力
    可以通过表单验证来约束用户输入的内容,如果内容格式与表单验证的规则不一致,则不会发送请求
3) 解释型语言
    c -> 编译 -> 运行
    js -> 运行
    所有的主流浏览器都内置了js的解析器
4) 弱类型语言
    变量的数据类型可以随时的变化
5) 浏览器是从上往下解析js代码

1) js的使用方式

1. 内部引用
    
2. 外部引用
    

2) 变量

0. 注释
    单行注释 //
    多行注释 /* */
1. 定义
    是一个容器,可以存放任意数据类型的值
2. 声明
    使用关键字var
    var a;

    关键字
        js中具有特殊作用的变量
    保留字
        将来有可能成为关键字的变量
    注意:
        1、变量可以是数字、字母、下划线、$组成
        2、不能是数字、下划线开始
        3、不能使用关键字和保留字
        4、多个变量声明时可以只写一个var
            var a,b,c;
        5、变量的命名应该是驼峰命名法
            var userName = '';
            var userPassword = '';
3. 初始化
    var a;   a = 1;
    var b;   b = [];
    变量的声明和初始化同时进行
    var a = 1;

3) 数据类型

  1. 基本数据类型

     数字类型 number
         整数
             var a = 1;
         浮点数
             var b = 1.2;
         非数字 NaN not a number
             var c = 10/'hello'; // NaN
            (isNaN 检测当前变量是否是非数字,如果不是数字,则返回true)
             console.log(isNaN(c)); // true
    
     字符串类型 string
         '' 或 ""
         var a = ''; // 空字符串
         var b = 'hello js'; // hello js
    
     布尔类型 boolean
         true/false,一般用于条件的判断
         var a = true; // true
    
     null
         空对象
         var obj = null;
         obj = {name:'tom',age:23};
    
     undefined
         变量声明未初始化
    
     数据类型的检测,使用typeof
         var str = '5';
         var bol = true;
         console.log('str:',typeof(str)); // string
         console.log('bol:',typeof(bol)); // boolean
         console.log('null:',typeof(null)); // object
         console.log('undefined:',typeof(undefined)); // undefined
         console.log('arr:',typeof([])); // object
         可以正确检测除了null之外的所有基本数据类型
    
  2. 引用数据类型

     数组 array
         var a = []; // 空数组
         var b = [1,'1',null,function(){}]
     对象 object
         var a = {};
     函数 function
         var a = function(){}
    
     es6 原始数据类型 6 种,symbol
    

4) 内存图

基本数据类型保存在栈区,引用数据类型保存在堆区(引用数据类型在栈区保存的是一个指针)
 值传递
    var a = 1;
    var b = a;
    b++;
    console.log(a); // 1
引用传递
    var c = {
        age:12
    };
    var d = c;
    d.age++;
    console.log(c.age); // 13

5)基本数据类型的转换

  1. 将其他数据类型转换为number

       1. 将字符串转换为number => +、-、 Number()
           var a = 'hello';
           var b = '';
           console.log(+a); // NaN
           console.log(Number(a)); // NaN
           console.log(Number(b)); // 0
    
       2. 将布尔转换为number
           var a = true;
           +a; // 1
           var b = false;
           +b; // 0
    
       3. 将null、undefined转换为number
           var a = null;
           +a; // 0
           var b = undefined;
           +b; // NaN
           
       4.parseInt()  ---将字符串中有效整数转换为Number
           a=parseInt("123aa") //123
           a="123e234"//123
           a="e123"//NaN
           
       5.parseFloat()
           对非string用parseInt(),parseFloat(),会先将其转换为string
           a=true;    a=parseInt(a) //NaN
       
  2. 将其他数据类型转换为string

       String()  toString()
       1. 将数字类型转换为string
           var a = 1;
           String(a); // '1'
           a.toString(); // '1'
       2. 将布尔类型转换为string
       3. 将null、undefined转换为string  null ->null /underfined->不可转
    

    3.将其他数据类型转换为boolean

       !! Boolean()
    1. 将数字类型转换为boolean --只有0,NaN是F
       var a = 0;
       !!a; // false
    
       var b = 1/-11;
       !!b; // true
    
       var c = NaN;
       !!c; // false
    
    2. 将字符串类型转换为boolean --空字符串为F
       var a = '';
       !!a; // false
    
       var b = 'hello';
       !!b; // true
    
    3. 将null、undefined转换为boolean--都F
       var a = null;
       !!a; // false
    
       var b = undefined;
       !!b; // false
    4. 对象 --True
       

你可能感兴趣的:(javascript)