• 变量类型
  • 变量计算

变量

题目:

  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. jq选择器汇总

    $("div") //标签 $(".box") //类 $("#box") //ID $("a[href][name]" ...

  2. 理解css伪类和伪元素

    伪类就是可以通过直接添加一个类样式达到同等效果,而伪元素,则需要先添加一个元素,然后在元素上添加样式才能达到同等效果 伪类 :active 向被激活的元素添加样式. :focus 向拥有键盘输入焦点的 ...

  3. win8使用putty登录虚拟机linux

    从下午两点开始在尝试,差不多用了6个小时候到现在终于成功了! 连接器使用的是putty,只要知道虚拟机的ip地址就可以尝试连接,所以首先查询虚拟机上的ip地址,使用命令: ifconfig 出现提示: ...

  4. Java 非线程安全的HashMap如何在多线程中使用

    Java 非线程安全的HashMap如何在多线程中使用 HashMap 是非线程安全的.在多线程条件下,容易导致死循环,具体表现为CPU使用率100%.因此多线程环境下保证 HashMap 的线程安全 ...

  5. JAVA中的设计模式三(策略模式)

    问题: 如何让算法和对象分开来,使得算法可以独立于使用它的客户而变化?   方案: 把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口,然后在类中包含这个对象的实例,这样类的实例在运行时就 ...

  6. SQL列中含有换行符的查找和替换方法

    最近在获取数据时,发现程序读取的字段中含有\r\n字符,检查数据库表中的数据,发现是varchar字符串中包含了换行符.导入数据导致了这一情况出现. 回车换行 不同系统的行结尾符号并不同,如下: li ...

  7. PE解析器的编写(一)——总体说明

    之前自己学习了PE文件的格式,后来自己写了个PE文件的解析器,这段时间工作上刚好要用到它,老板需要能查看某个exe中加载的dll的一个工具,我在使用之前自己写的这个东西的时候,发现很多东西都忘记了,所 ...

  8. 常用的linux系统监控命令

    记录一下自己常用的linux系统命令,方便以后查阅,发觉记忆越来越不行了 找到最耗CPU的java线程 ps命令 命令:ps -mp pid -o THREAD,tid,time   或者  ps - ...

  9. SQL Server之LEFT JOIN、RIGHT LOIN、INNER JOIN的区别

    很多人刚入门的时候分不清LEFT JOIN.RIGHT LOIN 和 INNER JOIN的区别,对它们的定义比较模糊,今天就简单的介绍一下它们的区别,对于入门的人来说,应该能够帮助你们理解. lef ...

  10. 使用Three.js 基本组件以及流程

    1. 创建场景 var scene = new THREE.Scene(); 2. 创建相机,设置可视范围 var camera = new THREE.PerspectiveCamera(45,  ...