JS基础——变量

  • 引用类型:对象  数组 函数  
1 var a = { age:22 };
2 var b =a ;
3 b.age = 21;
4 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;//110
var b = 100+‘10‘;//10010

  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);//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) {}

原文地址:https://www.cnblogs.com/bestchenyan/p/9615645.html

时间: 2024-10-23 03:10:51

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

JS基础-变量及输入输出和运算符的使用

一.什么是JavaScript? 再讲JS的基础之前,先让我们了解一下什么是JS吧. JS,全称JavaScript.是t一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能. 二.使用JS的三种方式 1.在HTML标签中直接内嵌JS():并不提倡使用. <button onclick="ale

JS基础变量、运算符和分支结构

[使用JS的三种方式]   1.HTML标签中内嵌JS(不提倡使用):   <button onclick="javascript:alert('小婊子,真点啊!')">有本事点我呀</button>   2.HTML页面中直接使用JS:   <script type="text/javascript">   //JS代码  </script>   3.引用外部JS文件:   <script language=&

js基础--变量、数据类型、循环、判断、函数定义

1.变量 var name="mxm"//局部变量 name="mxm"//全局变量 2.基本数据类型 //数字 a=1 //字符串 a="mxm" //列表 a=['1','2','3'] //字典 a={'k1':'v1','k2':'v2'} //布尔值 true false 3.for循环 a=['a','b','c'] for(var i=0;i<a.length;i++){ console.log(a[i]); } 4.if条件

js基础--javascript基础概念之变量与作用域

js基础--javascript基础概念之变量.作用域 javascript按照ECMA-262 的定义,变量与其他语言变量有所不同.js变量时松散的,不需要事先定义变量类型的.这使得他只是一个保存特定值的一个名称.变量与其数据类型可以在脚本的生命周期内改变. 还有明白几点: JavaScript的变量作用域是基于其特有的作用域链的,JavaScript没有块级作用域. 基本类型和引用类型的值 ECMAScript 的变量有两种不同的数据类型:分别是 基本数据类型值 和 引用类型值 : 基本数据

JS 基础知识3 变量

变量和数值相关,它储存了那个值,有了变量就可以储存操作数据了. js与其他语言不同,它是非类型的.就是变量可以存放任何类型的值,而其他语言需要存放特定类型的值. var i=5; i="fdsfad"; 这是合法的. 变量的声明一般是由VAR 关键字声明的 var i,sum; //一次声明两个变量,   若变量没有给定初始值,则值为“undefined” 在JS中多次声明同一个变量,是不会出错的,仅仅是给变量赋值的性质. 还有一种,不用var关键字声明变量,则JS会隐式的声明该变量,

JS基础知识回顾:变量、作用域和内存问题

ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 基本类型值指的是简单的数据段,而引用类型值指的是那些可能由多个值构成的对象. 引用类型的值是保存在内存中的对象,与其他语言不同,JavaScript不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间. 在操作对象时,实际上是在操作对象的引用而不是实际的对象. 在很多语言中,字符串以对象的形式来表示,因此被认为是引用类型的,ECMAScript放弃了这一传统. 定义基本类型值和引用类型值的方式是类似的:创建

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

首先,回顾下上篇博文中js基础梳理-究竟什么是执行上下文栈(执行栈),执行上下文(可执行代码)?的执行上下文的生命周期: 3.执行上下文的生命周期 3.1 创建阶段 生成变量对象(Variable object, VO) 建立作用域链(Scope chain) 确定this指向 3.2 执行阶段 变量赋值 函数引用 执行其他代码 1.什么是变量对象(Variable Object) 在写程序的时候会定义很多变量和函数,那js解析器是如何找到这些变量和函数的? 变量对象是与执行上下文对应的概念,在

js基础篇——变量

a.变量类型 变量类型 构造函数 举例 类型检测typeof 字符串 function String() var t = "chua"; var m = new String("chua"); "string" 数字 function Number() var t = 12; var m = new Number(12); "number" 布尔 function Boolean() var t = false; var m

js基础之变量类型

js的基本变量类型包括number,string,boolean,undefined,function,object,可用typeof展示出来.且js的变量类型是有所存的数据决定的.对于undefined类型是由于未声明或声明了为赋值产生的. <script> //number var a = 12; var b; //string // a = 'abc'; //boolean // a = true; //object // a = document.getElementById('div