数据类型

数据类型

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>数据类型</title>
</head>
<body>
    <script>
        window.onload = function() {
            // javascript中的变量是没有数据类型的,只有值才有数据类型
            // 变量可以随时持有任何类型的值 类型决定了值得行为特征

            // 内置类型
            // javascript有7种内置类型
            // 1.空值 null
            // 2.未定义 undefined
            // 3.数值 number
            // 4.字符串 string
            // 5.对象 object
            // 6.布尔 boolean
            // 7.符号(ES6新增) symbol
            // 除对象之外,其他统称为基本类型

            // typeof 运算符总是返回一个字符串
            // ,“undefined”和“is not defined”是两码事。 undefined表示已声明但未赋值,is not defined表示未声明
            console.log(typeof undefined); //undefined
            console.log(typeof null); // object
            console.log(typeof 111); // number
            console.log(typeof "str"); // string
            console.log(typeof true); // boolean
            console.log(typeof {}); // object
            console.log(typeof function f(){}); // function
            console.log(typeof Symbol()); // symbol
            // 判断是否为null
            console.log(!null && typeof null === "object"); //true

            function fun(){}
            /* 虽然使用typeof运算符显示为function 然而查阅规范就会知道,它实际上是object 的一个“子类型”。
            具体来说,函数是“可调用对象”,它有一个内部属性[[Call]],该属性使其可以被调用。*/
            console.log(typeof fun); // function
            // 另外 数组也是object的子类型
            var array = [];
            console.log(typeof array); // object
            console.log(array instanceof Array); // true
            console.log(array.constructor === Array); // true
            // 判断是否为Array
            let isArray = Object.prototype.toString.call(array) === "[object Array]";  
            console.log(isArray); // true
            // 判断数据类型的可靠方法:Object.prorotype.toString.call(变量);
            let arr = Object.prototype.toString.call(undefined);
            
            // javascript中的内置函数
            // 1.String()
            // 2.Number()
            // 3.Boolean()
            // 4.Array()
            // 5.Function()
            // Object()
            // RegExp()
            // Date()
            // Error()
            // Symbol()
            let flag = new Boolean(false);
            if(!flag){
                // 执行不到这里  
                console.log("false");
            }else{
                console.log("true");
            }

            // javascript中的值可以分为以下两类
            // 1.可以被强制转换为false的值
            // 2.其他 可以被强制转换为true的值
            // 以下这些为假值
            // 1. false
            // 2. 0 +0 -0 NaN
            // 3. ""
            // 4. undefined
            // 5. null
            // 从逻辑上说,假值列表以外的值都为真值
            // 但js规范并没有对此明确定义,只是给出了一些示例,比如所有的对象都为真值
            // 我们可以理解为假值列表外的值都为真值
            // 但是有一种例外:假值对象
            // 浏览器在某些特定情况下,在常规JavaScript 语法基础上自己创建了一些外来(exotic)值,这些就是“假值对象”。
            // 以下为典型的假值对象
            console.log(!!new Boolean(false)); // true
            console.log(!!document.all); // false

            // 一元运算符 + 会将操作数强制转换为数字
            console.log(+"123"); //数字123 
            console.log(+ new Date()); // 1580992014037
            // 注意:获取时间戳推荐使用ES5的静态方法Date.now() 
            console.log(Date.now()); // 1580992014037
            console.log(new Date().getTime()); // 1580992014037

            // 浏览器请求URL页面到显示的过程:
            // 发送http请求
            // 到达dns服务器进行域名解析
            // 得到ip地址
            // tcp/ip 三次握手四次挥手
            // 得到资源文件
            // 浏览器生成domtree
            // 渲染(render)
        }    
    </script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值