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

【如上栗子,值类型的特点:每个变量都会存储一个地址,不会相互影响】
====》引用类型:

【引用类型包括:对象,数组,函数】
【如上栗子,a和b的指针指向同一个对象地址,共用内容,所以里面的内容会随着变化。 引用类型的特点:可以无限扩大属性(比如说,var a ={age:20,name:james,address:china....})】
注意: js中的数据类型有以下几种:
基本类型:Number Boolean String undefined null
引用类型:Object Function Array
====》typeof运算符:

【typeof总共有6中形式(undefinend,string,number,boolean.object,function),比较特殊的是null,就算是空,也是一个object类型。如上,前4种值类型,typeof都区分的出来;针对上面的5-8,typeof只能区分出这个函数属于function类型】
=================================================================
(2)变量计算-强制类型转换(值类型)
- 字符串拼接
- ==运算符
- if语句
- 逻辑运算
==》字符串拼接

【如上,第二行代码,字符串拼接时,对数值进行强制类型转换,与后面一起合并成一个字符串】
==》==运算符

【如上,第一行代码:100和‘100’都会转换成true;第二行代码:0和‘ ’都会转换成false;第三行代码:null和undefined都会转换成false ==要慎用,这里如果改为===,结果就不同了】
==》if语句

【如上,1-4行代码:a的值为true,所以会执行if语句里面的内容;5-8行代码:b的值为100,这里被强制转换成布尔值类型(true),所以也会执行if语句里面的内容;9-12行代码:c的值为空,这里被强制转换成布尔值类型(false),所以不会执行if语句里面的内容】
==》逻辑运算

【如上,第一行代码:与运算符,(10与0),这里会把10强制转换成布尔值(true),即(true与0),所以会执行后面的值0】
【第二行代码:或运算符,(' '或'abc'),这里会把' '强制转换成布尔值(false),即(false或'abc'),所以也会执行后面的值'abc'】
【第三行代码:非运算符,因为window.abc未定义,所以是个false值,而前面加个!号,就会把false值转换成true值】
解答:
- JS中使用typeof能得到的哪些类型
答:undefined,string,number,boolean,object,function
2. 何时使用===何时使用==
答:

所以只有在判断对象中某个属性的时候用==,其他地方都使用===
3. JS中有哪些内置函数
答:

【补充,Math是对象而不是函数】
4. JS变量按照存储方式区分为哪些类型,并描述其特点
答:

【引用类型的值赋值只是一个变量指针的赋值,而不是真正的一个值的拷贝,他们的值的修改是相互干预的】
(1)值类型:1、占用空间固定,保存在栈中(当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将会逐个放入这块栈内存里,随着方法的执行结束,这个方法的内存栈也将自然销毁了。因此,所有在方法中定义的变量都是放在栈内存中的;栈中存储的是基础变量以及一些对象的引用变量,基础变量的值是存储在栈中,而引用变量存储在栈中的是指向堆中的数组或者对象的地址,这就是为何修改引用类型总会影响到其他指向这个地址的引用变量。)
2、保存与复制的是值本身
3、使用typeof检测数据的类型
4、基本类型数据是值类型
(2)引用类型:1、占用空间不固定,保存在堆中(当我们在程序中创建一个对象时,这个对象将被保存到运行时数据区中,以便反复利用(因为对象的创建成本通常较大),这个运行时数据区就是堆内存。堆内存中的对象不会随方法的结束而销毁,即使方法结束后,这个对象还可能被另一个引用变量所引用(方法的参数传递时很常见),则这个对象依然不会被销毁,只有当一个对象没有任何引用变量引用它时,系统的垃圾回收机制才会在核实的时候回收它。)
2、保存与复制的是指向对象的一个指针
3、使用instanceof检测数据类型
4、使用new()方法构造出的对象是引用型
5. 如何理解JSON
答:

第4行代码:把对象变成字符串;
第5行代码:把字符串变成对象
js基础知识--变量类型和变量计算的更多相关文章
- Js基础知识(一) - 变量
js基础 - 变量 *大家对js一定不会陌生,入门很简单(普通入门),很多人通过网络资源.书籍.课堂等很多途径学习js,但是有些js基础的只是往往被大家遗漏,本章就从js变量类型来说一说js 变量类型 ...
- js基础知识之_入门变量和运算符
js页面效果学习 (轮播图,文字滚动效果等等) javascript能来做什么 1.数据验证 2.将动态的内容写入网页中(ajax) 3.可以对时间做出响应 4.可以读写html中的内容 5.可以检测 ...
- 01-Java基础知识:数据类型与变量、标识符、运算符、表达式
Java基础知识:数据类型与变量.标识符.运算符.表达式 一.数据类型 Java定义了基本数据类型.引用数据类型.自定义类型. 八种基本数据类型:byte (1). short (2). int ( ...
- JavaScript学习笔记-基础语法、类型、变量
基础语法.类型.变量 非数字值的判断方法:(因为Infinity和NaN他们不等于任何值,包括自身) 1.用x != x ,当x为NaN时才返回true; 2.用isNaN(x) ,当x为NaN或 ...
- pl/sql基础知识—定义并使用变量
n 介绍 在编写pl/sql程序是,可以定义变量和常量:在pl/sql程序中包括有: ①标量类型(scalar) ②复合类型(composite) ③参照类型(reference) ④lob(lar ...
- NodeJs>------->>第三章:Node.js基础知识
第三章:Node.js基础知识 一:Node.js中的控制台 1:console.log.console.info 方法 console.log(" node app1.js 1> ...
- [JS复习] JS 基础知识
项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display :inline or bloc ...
- 网站开发进阶(十五)JS基础知识充电站
JS基础知识充电站 1.javascript alert弹出对话框时确定和取消两个按钮返回值? 用的不是alert对话框,是confirm confirm(str); 参数str:你要说的话或问题: ...
- HTML+CSS+JS基础知识
HTML+CSS+JS基础知识 目录 对HTML+CSS+JS的理解 基础知识 对HTML+CSS+JS的理解 基础知识 插入样式表的三种方式 外部样式表:<link rel="sty ...
- Node.js基础知识
Node.js入门 Node.js Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设在POSIX环境下运行 ...
随机推荐
- 2018.11.02 NOIP模拟 飞越行星带(最小生成树/二分+并查集)
传送门 发现题目要求的就是从下到上的瓶颈路. 画个图出来发现跟去年noipnoipnoip提高组的奶酪差不多. 于是可以二分宽度+并查集检验,或者直接求瓶颈. 代码
- 2018.10.25 uoj#308. 【UNR #2】UOJ拯救计划(排列组合)
传送门 有一个显然的式子:Ans=∑A(n,i)∗用i种颜色的方案数Ans=\sum A(n,i)*用i种颜色的方案数Ans=∑A(n,i)∗用i种颜色的方案数 这个东西貌似是个NPCNPCNPC. ...
- TCP/IP协议(4):网络层
网络层上有IP.ICMP.IGMP等协议. 1.IP地址 在OSI模型中,三层网络层负责IP地址,IP数据报帧头中的源地址和目的地址就是指IP地址.IPV4类型IP地址为32位4个字节,IPV6类型I ...
- JS中的计时器事件
JS可以实现很多java代码不易完成的功能.这里学习一些js中的计时器事件. JavaScript 一个设定的时间间隔之后来执行代码,称之为计时事件. 主要通过两个方法来实现: 1.setInterv ...
- 最基本的CentOS 网络配置
一般CentOS 网络配置是根据自己的需求来设定的.但是,对于一些不经常用CentOS的用户来说,不知道基本的CentOS 网络配置.如果你没有特别的要考虑的设置,那么就可以考虑下我推荐的这种Cent ...
- PAT甲级 1122. Hamiltonian Cycle (25)
1122. Hamiltonian Cycle (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The ...
- vi 命令
学习的网址:http://www.cnblogs.com/88999660/articles/1581524.html vi filename: 打开或新建 vi +n filename: 光标置于第 ...
- mac上配置php开发环境
玉忠之前在我的mac上配置过,当时项目不能区分大小写,所以就没成功,我现在在他得基础上继续配置,希望成功. 教程:http://my.oschina.net/joanfen/blog/171109 以 ...
- bootstrap1.2
<html> <head> <meta charset="UTF-8"> <title></title> ...
- SRM467
250pt: 一个学生等老师来上课的,但是他不知道老师啥时候会来的,然后他等waiting时间后觉得无聊就会出去转walking时间,回来等待waiting时间后老师没来就会再次出去.老师会在a... ...