• 变量类型
  • 变量计算

变量

题目:

  1. JavaScript 中使用typeof能得到的有哪些类型?

     1.1 变量类型
    
     (1).js中的数据类型:字符串、数字、布尔、数组、对象、Null、Undefined
    
     (2).值类型:把每个值存到每个变量
    
         var a = 100;
    var b = a;
    a = 200;
    console.log(b); // 100 (3).引用类型:1.对象,2.数组,3.函数 特点:它可以无限扩大属性 var a = { age:20};
    var b = a;
    b.age = 21;
    console.log(a.age); // 21 (4).typeof运算符 typeof undefined //undefined typeof 'abc' //string typeof 123 //number typeof true //boolean typeof {} //object typeof [] //object typeof null //object typeof console.log //function
    ```
    1.2 变量计算 -- 强制类型转换 可能需要转换的情况:
    ```
    (1).字符串拼接 var a = 100 + 10; //110
    var b = 100 + '10'; //10010 (2).== 运算符 100 == '100'; //true
    0 == ''; //true
    null == undefined; //true (3).if语句 var a = true;
    if(a){
    ..
    } var b = 100;
    if(b){
    ..
    } var c = '';
    if(c){
    ..
    } (4).逻辑运算符 console.log(10 && 0); //0 10自动转换为true
    console.log('' || 'abc'); //'abc' ''自动转换为false
    console.log(!window.abc); true undefined 就是fasle 判断一个变量会被当做true 还是false var a = 100;
    console.log(!!a); //true var a = '';
    console.log(!!a); //false
  2. 何时使用 === 何时使用 == ?

    if(obj.a == null){

        1.这里相当于obj.a === null  || obj.a === undfined ,简写形式

        这里是jQuery原发中推荐的写法

        2.== 和 != 比较若类型不同,先偿试转换类型,再作值比较,最后返回值比较结果 。
而 === 和 !== 只有在相同类型下,才会比较其值。 3.首先,== equality 等同,=== identity 恒等。 (2.1). ==, 两边值类型不同的时候,要先进行类型转换,再比较。 (2.2). ===,不做类型转换,类型不同的一定不等。 下面分别说明:
先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等:
1、如果类型不同,就[不相等]
2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4、如果两个值都是true,或者都是false,那么[相等]。
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6、如果两个值都是null,或者都是undefined,那么[相等]。
再说 ==,根据以下规则:
1、如果两个值类型相同,进行 === 比较。
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true ,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、如果一个是对象,另一 个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试 valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)
e、任何其他组合,都[不相等]。
举例:
"1" == true
类型不等,true会先转换成数值 1,现在变成 "1" == 1,再把"1"转换成 1,比较 1 == 1, 相等。
= 赋值运算符
== 等于
=== 严格等于
例:
var a = 3;
var b = "3";
a==b 返回 true
a===b 返回 false
因为a,b的类型不一样
===用来进行严格的比较判断 }

3.JavaScript有哪些内置函数?

    (1).数据封装类对象

        Object
Array
Boolean
Number
String
Function
Date
EegExp
Error
  1. JavaScript变量按照存储方式区分哪些类型,并描述其特点?
    (1). 值类型  

        var a =10;
var b = a;
a = 11;
console.log(b); //10 (2). 引用类型 var obj = {x:100} var obj1 = { x:100 };
var obj2 = obj1;
obj1.x = 200;
console.log(obj2.x); // 200
```
5. 如何理解JSON?
```
JSON 只不过去一个 JS 的对象而已 2个接口: 1. 对象变成字符串 -- JSON.stringify({a:10, b:20});
2. 字符串变成对象 -- JSON.parse('{"a":10, "b":29}');
```

JavaScript 变量、类型与计算的更多相关文章

  1. JS(面试中的变量类型和计算问题)

    JS(变量类型和计算) 题目1.JS 中使用 typeof 能得到那些类型? 题目2.何时使用 === 何时使用==? 题目3.JS 中有哪些内置函数? 题目4.JS 变量按照存储方式区分为那些类型, ...

  2. js变量类型和计算

    # js入门基础-变量类型和计算 ` --首先由于我使用了一个不太合格的markdown来编写来文章,所以在移动端阅读不要太方便,建议移动端使用横屏模式或pc端阅读,当然如果你有平板那是最好的. -- ...

  3. javascript变量类型及作用域

    javascript变量类型及作用域 一.简介 变量类型 ECMAScript变量可能包含两种不同类型的数据值:基本类型和引用类型. 基本类型 基本类型指的是简单的数据段,5种基本数据类型:undef ...

  4. js课程 1-3 Javascript变量类型详解

    js课程 1-3  Javascript变量类型详解 一.总结 一句话总结:js对象点(属性方法),json对象冒号(属性方法).属性和方法区别只有一个括号. 1.json对象中的函数的使用? 函数名 ...

  5. js面试题知识点全解(一变量类型和计算)

    1.js中使用typeof能得到哪些类型 2.何时使用===和== 3.js中的内置函数 4.js变量按存储方式区分为哪些类型,并描述其特点 5.如何理解json 以下对这些问题的知识点做一些总结: ...

  6. JS变量类型与计算

    一.题目 1.JS中使用typeof能得到哪些类型? 2.何时使用===何时使用==? 3.JS中有哪些内置函数? 4.JS变量按照存储方式区分为哪些类型,并描述其特点? 5.如何理解JSON? 知识 ...

  7. JavaScript变量类型检测总结

    JavaScript中的变量类型: 基本类型值:Undefined,Null,Boolean,Number和String. 按值访问(可直接操作保存在变量中的变量值): 复制规则:当复制基本类型值时: ...

  8. JS基础知识——变量类型和计算(一)

    JS中使用typeof能得到的哪些类型? 何时使用===何时使用==? JS中有哪些内置函数? JS变量按照存储方式区分为哪些类型,描述其特点? 如何理解JSON? 知识点梳理 一.变量类型: (1) ...

  9. JavaScript 变量类型 保存内存中的位置 和 引用

    1. JavaScript变量 基本类型值在内存中占据固定大小的空间 因此被保存在栈内存中. 从一个变量向另一个变量复制基本来下的值 会创建这个值得一个副本. 引用类型的值是对象 保存在堆内存中. 包 ...

  10. javascript 变量类型判断

    一.typeof 操作符 对于Function, String, Number ,Undefined 等几种类型的对象来说,他完全可以胜任,但是为Array时 "); typeof arr ...

随机推荐

  1. CRUL学习记录

    在学习web相关知识的时候,了解到crul可以对网址进行请求,并可以看到网站的响应. 1.curl获取web网站返回的网页内容 命令:curl http://XXXXX 2.curl查看web网站的s ...

  2. 5、ABPZero系列教程之拼多多卖家工具 修改User表结构

    毕竟这个框架是外国人开发的,对于我们国人来说还是有些地方并不合适,就好比如注册时需要填写名字.姓氏一样,今天要说的就是如何去掉这2个字段. 先看如下修改完成的效果图 User表结构修改 修改User类 ...

  3. MySQL innodb_table_monitor 解析

    背景:       用innodb_table_monitor来查看表内部的存储信息和索引结构是一个好的办法.再之前的MySQL 字符串主键和整型主键分析中提到了一些内容,但没有细讲,现在来好好的分析 ...

  4. JMeter-接口自动化之正则表达式关联

    jmeter中,接口自动化的关键在于参数关联.比如需要登录的接口,如何调用登录口令?一个增删改查的闭环,如何将接口参数上下传递?下面就以实际的例子来仔细说一说 1:登录接口 这里有一个实际的登录接口, ...

  5. 【vue系列之三】从一个vue-pdf-shower,说说vue组件和npm包

    前言 从去年年初开始,自己便下决心要写一个vue系列的博客,但时至今日,才写系列的第三篇博客,想来甚是惭愧. 但是慢归慢,每一篇都要保证质量,以及要写出自己的心路历程,防止自己工作中填的坑再让读者走一 ...

  6. Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...

  7. Array对象的方法详情

    题外话:从事前端开发有很长一段时间了,一直在不断的扩充各种框架的学习,总觉得要学的东西好多,但是技能并没有得到很大的提升,后发现自己一味去追求的它的广度,并没用去深究其深度,所以决定打算从零开始,从最 ...

  8. Sql的基础知识提升(二)

    二.提升 1.说明:复制表(只复制结构,源表名:a 新表名:b) (Access 可用) 法一:select * into b from a where 1<>1(仅用于 SQlServe ...

  9. HUST 1583 长度单位

    1583 - 长度单位 时间限制:1秒 内存限制:128兆 536 次提交 103 次通过 题目描述 我们生活中常用的长度单位有英尺.英寸和厘米,众所周知它们之间的换算关系每英寸等于3厘米,而每英尺等 ...

  10. Codeforces 725B Food on the Plane

    B. Food on the Plane time limit per test:2 seconds memory limit per test:256 megabytes input:standar ...