• 引用类型:对象  数组 函数  
 var a = { age: };
var b =a ;
b.age = ;
console.log(a.age);// 21 传递的是地址, a,b同地址

  值类型:

var a =100;
var b =a;
b = 200;
console.log(a);// 100 a和b是两个不同的地址,改变b的值不会改变a的值

typeof 运算符只能区分值类型的详细类型,不能区分除了function以外的引用类型的详细类型

console.log(typeof undefined);// undefined
console.log(typeof 'abc');// string
console.log(typeof 123);// number
console.log(typeof true);//boolean
console.log(typeof {});//object
console.log(typeof []);//object
console.log(typeof null);//object
console.log(typeof console.log);//function
  • 变量计算——强制类型转换(值类型)

  以下4种情况有可能发生强制类型转换:

    1. 字符串拼接
    2. "=="运算符
    3. if语句
    4. 逻辑运算

  1、字符串拼接 强制类型转换 

var a =100 +10;//
var b = 100+'10';//

  2、“==”运算符 强制类型转换

console.log( 100 == '100');//true  将100转换成字符串‘100’
console.log( 0 == '');//true 0和''转成false比较
console.log( null == undefined);//true null和undefined 转成false比较

  3、if语句 强制类型转换

var a = true;
if (a) { /*执行*/ };
var b = 100;
if (b) { /*b转换成true 执行*/ }
var c = '';
if (c) { /*c转换成false 不执行*/ }

4、逻辑运算符 强制类型转换

console.log( 10 && 0);//
console.log( '' || 'abc');// abc
console.log( !window.abc );// true

相关问题:

1、判断一个变量会被当做true还是false

var a = 100;
console.log(!!a);

2、何时用"==",何时用''==="?

== 有强制类型转换  === 不会

if (obj.a == null) {
//这里相当于 obj.a === null || obj.a === undefined ,简写形式
//这是jquery源码中推荐的写法,除此之外 都用 ===
}

 3、JS 中有哪些内置函数——数据封装对象    

Object Array Boolean Number String Function Date RegExp Error

4、JS按存储方式区分变量类型

5、如何理解JSON

  json就是JS的一个对象(有属性,有方法),同时也是一种格式。

JSON.Stringify({a:10,b:20});//对象转字符串
JSON.parse('{"a":10,"b":20}');// 字符串转对象

6、if中表示false的东东:

if (0) {}
if (NaN) {}
if ('') {}
if (null) {}
if (false) {}

JS基础——变量的更多相关文章

  1. JS基础-变量类型和类型转换

    JS 变量类型 JS中有 6 种原始值,分别是: boolean number string undefined symbol null 引用类型: 对象 数组 函数 JS中使用typeof能得到哪些 ...

  2. js基础——变量、作用域、内存

    1.new关键字创建的是引用类型: eg. var box = new Object();      box.name = "Linda";//引用类型添加属性没问题     al ...

  3. Js基础知识(一) - 变量

    js基础 - 变量 *大家对js一定不会陌生,入门很简单(普通入门),很多人通过网络资源.书籍.课堂等很多途径学习js,但是有些js基础的只是往往被大家遗漏,本章就从js变量类型来说一说js 变量类型 ...

  4. JS基础学习1

    1 JS 概述 一个完整的javascript实现是由以下3个不同部分组成的: (1)     核心(ECMAscript) (2)     文档对象模型(DOM)  Document object ...

  5. js基础梳理-究竟什么是变量对象,什么是活动对象?

    首先,回顾下上篇博文中js基础梳理-究竟什么是执行上下文栈(执行栈),执行上下文(可执行代码)?的执行上下文的生命周期: 3.执行上下文的生命周期 3.1 创建阶段 生成变量对象(Variable o ...

  6. js基础知识--变量类型和变量计算

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

  7. js基础篇——变量

    a.变量类型 变量类型 构造函数 举例 类型检测typeof 字符串 function String() var t = "chua"; var m = new String(&q ...

  8. js基础知识之_入门变量和运算符

    js页面效果学习 (轮播图,文字滚动效果等等) javascript能来做什么 1.数据验证 2.将动态的内容写入网页中(ajax) 3.可以对时间做出响应 4.可以读写html中的内容 5.可以检测 ...

  9. Python--前端基础之JavaScript(JS的引入方式,JS的变量、常量和标识符,JS的数据类型,运算符,流程控制,JavaScript的对象)

    JavaScript介绍 JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互. JavaScript是浏览器解释执行的,前端脚 ...

随机推荐

  1. 用python做一个烟花show

    烟花效果如图(截了几个时刻的静态图): 源代码如下: # -*- coding: utf-8 -*- # Nola import tkinter as tk from PIL import Image ...

  2. TCP/IP协议三次握手与四次握手

    TCP/IP协议三次握手与四次握手流程解析 一.TCP报文格式  TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图:图1 TCP报文格式  上图中有几个 ...

  3. .Net Core 控制台程序生产exe

    打开csproj ,添加一行 <RuntimeIdentifier>win10-x64</RuntimeIdentifier> 具体如下: <Project Sdk=&q ...

  4. Cordova编译报AAPT错误的解决方法

    因为项目中同时使用cordova-hot-code-push-plugin和phonegap-plugin-barcodescanner,编译时报错:AAPT: error: resource and ...

  5. 弹性布局(Flex布局)整理

    一.  弹性布局 一个好的网站都有让用户看上去很舒服的布局,一个网站的布局也会或多或少影响到它的浏览量,看完阮大神的博客,就想把弹性布局整理一下. 在平时的我们常用的布局类型有以下几种: 1.浮动+定 ...

  6. ubuntu16.04 配置双网卡机器

    本文介绍一台具有双有线网卡的机器在Linux下如何配置双网卡 系统平台:Ubuntu16.04 1:查看机器网卡信息,是否双网卡都能正确被机器pci识别 可以通过以下命令查看设备网卡,若果看到两条网卡 ...

  7. 公网定制化yum仓库部署

    公网定制化yum仓库部署 (1)搭建公网源yum仓库 安装wget aliyun源 # wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun ...

  8. Xcode 运行时配置

    有时候,我们的app在测试时需要连接到一个testing服务器,在打包为企业证书的app时又需要连接到另一个ad hoc 服务器,或者我们想企业证书打包的app和debug模式打包的app有不同的AP ...

  9. Idea Tomcat Servlet路径配置问题

    虚拟路径问题没有搞清楚,折腾了好久. 总的来说:login.html(action)和loginServlet(@webServlet)的虚拟路径相差一个/day14.同时二者在浏览器的访问时,都必须 ...

  10. 数组,集合,字符串,bean,map

    //[字符串]转成[数组] String[] arr = "1,2,3,4,5,6".split(","); //[String数组]转成[Long数组] Lo ...