JS的数据类型与事件类

02-JavaScript-内部JS、外部JS、数据类型、关键词 内部JS示例");// 在页面加载完成后自动弹出提示框 阅读详情

很久没有写博客了…因为这段时间都没有做新的项目,一直在复习前端的基础知识,大部分的(面试)知识点都归类为体系放入了印象笔记里。但因为还是有些繁杂,所以刚好再整理一次发到博客上来。
注:部分图片来自网络
知识点是仅个人根据面经以及自己的面试经历整理,仅供参考

数据类型分类

基本数据类型(存放在栈中)

  • number(包括整数,浮点数,NaN)
  • boolean
  • null
  • undefined
  • string
  • symbol(es6新增,表示独一无二的值)

基本数据类型存放在栈中,数据大小确定,直接按值存放,所以可以直接按值访问
基本数据类型

引用数据类型(存放在堆内存中)

  • object(包括正则对象,函数,数组等等)

前面说到变量是储存在栈中的,但是对于引用数据类型来说,存储在栈中的仅仅是一个指针,这个指针指向堆内存(真正的对象变量)。

引用数据类型
如上图,从obj1复制一个对象到obj2,仅仅是复制了一个指针而已,指向的还是同一个东西。这就是js中,引用数据类型的浅拷贝。

引用数据类型的深拷贝与浅拷贝

对于基本数据类型,复制变量相当于把值重新赋给新变量;但对于引用数据类型来说,仅仅拷贝指针,即仅仅实现了浅拷贝。

浅拷贝
对于仅仅是复制了引用(地址),即复制了之后,原来的变量和新的变量指向同一个东西,彼此之间的操作会互相影响。

在开发工程过程中,肯定需要避免这种情况,更多的是希望能够完全复制出一个新对象。即深拷贝,即在堆中重新分配内存,拥有不同的地址,但是值是一样的,复制后的对象与原来的对象是完全隔离,互不影响。

综上:
深浅拷贝的主要区别:
复制的是引用(地址)还是复制的是实例。

如何实现深拷贝
  1. Array的slice 和 concat 方法 和 jQuery 中的 extend 复制方法。都只能复制第一层的值,对于第一层是深拷贝,但是到第二层之后就只复制引用,所以不是真正的深拷贝。

  2. 真正的深拷贝

    • JSON 对象的 parse 和 stringify
    • JSON 对象中的 stringify 可以把一个 js 对象序列化为一个 JSON 字符串,parse 可以把 JSON 字符串反序列化为一个 js 对象,这两个方法实现的是深拷贝。(两个概念,序列化与反序列化)

数据类型判断

1. typeof
  • 可以判断:number, boolean, string, function, undifined, object
  • typeof(null) -> object
  • typeof([]) -> object
2. instanceof
  • 根据原型链来检验数据类型
  • 原理:判断一个对象与构造函数是否在一个原型链上
  • 只能检验出使用new声明的数据类型,并且不能区别undefined和null
3. constructor
  • bool.constructor === Boolean //true
  • constructor不能判断undefined和null
  • 使用它是不安全的,因为contructor的指向是可以改变的a.constructor = Object
4. Object.prototype.toStrirng.call

在任何值上调用 Object 原生的toString() 方法,都会返回一个[object NativeConstructorName]格式的字符串。每个类在内部都有一个 [[Class]] 属性,这个属性中就指定了上述字符串中的构造函数名。

console.log(Object.prototype.toString.call(und));//[object Undefined]
console.log(Object.prototype.toString.call(nul));//[object Null]
console.log(Object.prototype.toString.call(arr));//[object Array]
console.log(Object.prototype.toString.call(obj));//[object Object]
  • 不能检测非原生构造函数的构造函数名。
  • 无论构造函数是什么,只输出[object object]
function test(){}
var obj = new test();
console.log(Object.prototype.toStirng.call(obj)); 
//[object object]

数据类型转换

显式(强制)转换

利用js提供的函数

  1. parseInt()
  2. parseFloat() ,
  3. Number(),
  4. Boolean()
  5. toString()

进行数据转换,例如:

  • num.toString(2)能直接将num转换为2进制数格式的字符串
  • parseInt方法可以将其它进制转换为十进制,只需要给该方法传入需要转换的字符串和该字符串的进制表示两个参数即可。

隐式转换

利用操作符进行转换都可以看做隐式转换。

例如:

  • 运算中,+号,数字隐式转换成字符串。
  • 其余的运算符号是字符串隐式转换成数字。

关于数据类型的其他问题

1. 类数组

类数组是有数组行为的对象

对于一个普通的对象来说,如果它:

  • 所有元素key值均为正整数
  • 有相应的length属性
  • 甚至具有数组的方法

那么虽然该对象并不是由Array构造函数所创建的,它依然呈现出数组的行为,就是类数组对象

//类数组示例
var a = {'1':'gg','2':'love','4':'meimei',length:5};
Array.prototype.join.call(a,'+');//'+gg+love++meimei'
 
//非类数组示例
var c = {'1':2};   //没有length属性就不是类数组

常见的类数组有:

  1. arguments对象
  2. set对象、map对象
  3. DOM方法的返回结果
判断数组与类数组:
var arr = [1,1,4,6]
var lis = document.getElementsByTagName('div')

// 第一种方式 instanceof
console.log(arr instanceof Array);
console.log(lis instanceof Array);

// 第二种方式
console.log(arr.constructor === Array)
console.log(lis.constructor === Array)

// 第三种方式
console.log(Object.prototype.toString.call(arr) === "[object Array]")
console.log(Object.prototype.toString.call(lis) === "[object Array]")

// 使用ES5提供的方法
console.log(Array.isArray(arr))
console.log(Array.isArray(lis))

类数组与数组的转换
  1. 类数组转为数组

    1. Array.from()
    2. var a = {'0':1,'1':2,'2':3,length:3};
      var arr = Array.prototype.slice.call(a); //arr=[1,2,3]
  2. 数组转为类数组

    1. 使用apply , call

2. 基本数据类型的包装对象

var a = 'string'
typeof a //String
a.length //6

虽然变量a是一个基本数据类型,但他却能跟对象一样,调用相应的方法。

这是因为在基本类型中,number, string, boolean这三个基本类型都有自己的包装对象,并且随时等待召唤。

当对基本数据类型进行属性操作时,JavaScript后台会为其建立一个包装对象,调用包装对象下的方法。调用完毕后就被销毁。

var str = 'hello'; 
var s2 = str.charAt(0); 
//在执行到这一句的时候 后台会自动完成以下动作 

alert(s2);//h 
alert(str);//hello    
//注意这是一瞬间的动作 实际上我们没有改变字符串本身的值。就是做了下面的动作.这也是为什么每个字符串具有的方法并没有改变字符串本身的原因。

实际上后台会进行以下操作

 var str = new String('hello'); 
 // 找到对应的包装对象类型,然后通过包装对象创建出一个和基本类型值相同的对象
 var s2 = str.chaAt(0); 
 // 然后这个对象就可以调用包装对象下的方法
 str = null;    
 //之后这个临时创建的对象就被销毁了, str =null; 

3. 浮点数的比较问题

console.log(0.1+0.2===0.3) // false
console.log(0.1+0.2) // 0.30000000000000004

解决

  • 设置一个误差范围值(机器精度)
  • 在ES6中,Number.EPSILON值正等于2^-52,即通常使用的机器精度
function numbersequal(a,b) { 
    return Math.abs(a-b)<Number.EPSILON;
} 
var a=0.1+0.2, b=0.3;
console.log(numbersequal(a,b)); //true

4. NaN

NaN 即 Not a Number ,不是一个数字。 它是 Number 对象上的一个静态属性。

产生

1. 强制类型转换失败
直接使用 parseInt,parseFloat 或 Number 将一个非数字的值转化为数字时,表达式返回 NaN 。

'abc' - 3   // NaN
parseInt('abc')  // NaN
parseFloat('abc') // NaN
Number('abc')    // NaN
Number('123abc'); // NaN
parseInt('123abc'); // 123

*特别的,Number 转换的是整个值,而不是部分值;parseInt 和 parseFloat 只转化第一个无效字符之前的字符串。另外,一元加操作符也可以实现与 Number 相同的作用。 *

+ '12abc'; // NaN
+ '123'; // 123
+ '123.78'; // 123.78
+ 'abc'; // NaN

2. 运算符运算失败

在做运算(减乘除等)时,JS会将运算符两边或一边的变量先转换为数字在进行计算。如果转换失败,则表达式将返回NaN

100 - '2a' ; // NaN
'100' / '20a'; // NaN
'20a' * 5 ; // NaN
undefined - 1; // NaN, Number(undefined) == NaN
[] * 20 ; // 0, Number([]) == 0
null - 5; // -5, Number(null) == 0

特殊的,+运算符通常会将数字转换为字符串,因此不会返回NaN
5 + 4 + '6' = '96';

isNaN()

isNaN方法检查一个值是否能被 Number() 成功转换 。 如果能转换成功,就返回 false,否则返回 true 。

isNaN(NaN)    // true 不能转换
isNaN('123')   // false 能转换
isNaN('abc')    // true 不能转换
isNaN('123ab')   // true 不能转换
NaN !== NaN

因为NaN 就是除了数字的任意值,但绝不是确切的某一个值,所以它是一个范围,而不是一个确定的值。所以NaN !== NaN

5. 变量提升与函数提升

变量提升

变量提升即:将变量声明提升到它所在作用域的最开始的部分。
例如:

console.log(global); // undefined
var global = 'global';
console.log(global); // global
 
function fn () {
  console.log(a); // undefined
  var a = 'aaa';
  console.log(a); // aaa
}
fn();

由于js的变量提升,实际上上面的代码是按照以下来执行的:

var global; // 变量提升,全局作用域范围内,此时只是声明,并没有赋值
console.log(global); // undefined
global = 'global'; // 此时才赋值
console.log(global); // 打印出global
 
function fn () {
  var a; // 变量提升,函数作用域范围内
  console.log(a);
  a = 'aaa';
  console.log(a);
}
fn();
函数提升(函数声明方式)

js创建函数的方式有两种:

  1. 函数声明(存在函数提升,会提升到该块级作用域最前面)
    function fun(){}
  2. 函数表达式
    var fun = function(){}

6. 假值

JavaScript中有 6 个值为“假”,这六个值是

  1. false
  2. null
  3. undefined
  4. 0(包括+0, -0)
  5. ’ ’ (空字符串)
  6. NaN

这些假值可以被强制类型转换成false。

DOM事件类

事件级别

  1. DOM0
    1. element.onclick=function(){}
  2. DOM2
    1. element.addEventListener('click',function(){},false)
  3. DOM3
    1. element.addEventListener('keyup',function(){},false)
addEventListner与onclick的区别
  • 事件冒泡与捕获

    • 对于addEventListner来说,第三个参数:
      - true - 事件句柄在捕获阶段执行
      - false- 默认。事件句柄在冒泡阶段执行
    • 而onclick只能使用事件冒泡
  • 是否能重复

    • onclick一次只能对一个元素绑定一个事件处理程序,如果绑定多个,会被覆盖掉。
    • 而addEventListner可以给一个事件注册多个listener
  • addEventListner对任何DOM元素都有效,而onclick只对HTML有效

事件模型

捕获

从上往下

具体流程:
window(窗口对象) -> document -> html -> body -> 。。。

用js获取 :
document.documentElement

用js获取body
document.body

冒泡

从当前事件往外冒泡

事件流

事件流描述的是从页面中接收事件的顺序。

事件发生时会在元素节点与根节点之间按照特定的顺序传播,路径所经过的所有节点都会收到该事件,这个传播过程即DOM事件流。

DOM标准采用捕获+冒泡。两种事件流都会触发DOM的所有对象,从document对象开始,也在document对象结束。

DOM事件流

DOM标准规定事件流包括三个阶段:

  1. 事件捕获阶段:实际目标(<div>)在捕获阶段不会接收事件。也就是在捕获阶段,事件从document到<html>再到<body>就停止了。图中1~3

  2. 处于目标阶段:事件在<div>上发生并处理。但是事件处理会被看成是冒泡阶段的一部分。

  3. 冒泡阶段:事件又传播回文档。

Event对象

  1. event.preventDefault()
    1. 组织默认行为即通知浏览器不要执行与事件关联的默认动作。
  2. event.stopPropagation
    1. 阻止冒泡 - 不再派发事件。
  3. event.stopImmediatePropagation
    1. 除了可以阻止事件冒泡之外,还可以把这个元素绑定的同类型事件也阻止了。
  4. event.currentTarget
    1. 返回绑定事件的元素
  5. event.target
    • 返回触发事件的元素

常见事件函数

  1. 点击事件:

    1. onclick:单击
    2. ondbclick:双击
  2. 焦点事件:

    1. onblur: 失去焦点
    2. onfocus:获得焦点
  3. 加载事件:

    1. onload:页面或图片完成加载
  4. 鼠标事件:

    1. onmousedown: 按下鼠标
    2. onmouseupL:松开鼠标
    3. onmousemove:移动鼠标
    4. onmouseover:鼠标移到某元素之上
    5. onmouseout:鼠标从某元素离开
  5. 键盘事件:

    1. onkeydown:按下键盘
    2. onkeyup:松开
    3. onkeypress:按下并松开
  6. 其他

    1. onchange 域的内容改变
    2. onselect 文本选中

事件委托

事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。

使用原因:

  • 在JavaScript中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能,因为需要不断的与dom节点进行交互,访问dom的次数越多,引起浏览器重绘与重排的次数也就越多,就会延长整个页面的交互就绪时间
  • 如果要用事件委托,就会将所有的操作放到js程序里面,与dom的操作就只需要交互一次,这样就能大大的减少与dom的交互次数,提高性能;

原理:
利用事件冒泡,子元素的事件会冒泡到父级元素上,所以可以将子元素时间委托给父级代执行事件。

使用方法:

  1. Event对象提供了一个属性叫target,可以返回事件的目标节点,即事件源,即target可以表示为当前的事件操作的dom。
    • 标准浏览器用ev.target
    • IE浏览器用event.srcElement
    • 可以使用nodeName来获取具体是什么标签名(返回的是大写)
oUl.onclick = function(ev){
        var ev = ev || window.event;
        var target = ev.target || ev.srcElement;
        if(target.nodeName.toLowerCase() == 'li'){
                alert(123);
                alert(target.innerHTML);
        }
  }
自然语言处理6 -- 情感分析 1 概述 情感分析是自然语言处理中常见的场景,比如淘宝商品评价,饿了么外卖评价等,对于指导产品更新迭代具有关键性作用。通过情感分析,可以挖掘产品在各个维度的优劣,从而明确如何改进产品。比如对外卖评价,可以分析菜品口味、送达时间、送餐态度、菜品丰富度等多个维度的用户情感指数,从而从各个维度上改进外卖服务。 情感分析可以采用基于情感词典的传统方法,也可以采用基于深度学习的方法,下面详细讲解 ... 阅读详情

相关推荐

FastAPI + Layui:打造企业级敏捷开发后台管理系统

本文详细介绍了如何使用FastAPI和Layui构建高效的企业级后台管理系统。FastAPI提供高性能的异步API支持,而Layui则简化了前端开发流程,两者结合可实现快速开发和部署。文章涵盖了从环境搭建、核心组件开发到性能优化的全流程,特别适合需要敏捷开发的企业项目。

weixin_29045585的博客 555

事件、属性及数据类型

一、事件   通过上一章的例子,你可能对“面向对象的编程”已经有了一定了解,它是由事件驱动的,对于不同的对象,所能感应到的事件也会不同,譬如说当你把鼠标移进某一区域时就会触发MouseMove事件,这很直观,也 容易理解,但也有些事件比较抽象,下面我来对一般的事件进行一下解释。   1. 窗体和图象框类事件   ·  Paint事件:当某一对象在屏幕中被移动,改变尺寸或清除后,程序会自动调用

u014464450的专栏 763

SUMO仿真教程(5) —— 使用“XML“语言自定义构建路网

文章目录一.简要介绍1.node file2.edge file3.lane definitions(1)路段细分(2)邻近的对向车道(3)删除边或车道4.type file(1)简要概述(2)edge定义中引用type文件的示例(3)指定车辆种类的速度限制5.connections file(1)简要概述:(2)connection的属性参数(3)删除连接(4)设置连接的优先级(5)同一边的多个连接二.演示示例:1.自定义编写node file2.自定义编写edge file3.自定义编写type fil

weixin_50632459的博客 5017

UGUI事件系统——事件数据

事件数据 - EventData BaseEventData:基础事件数据 —事件数据的基类,和EventSystem配合使用 PointerEventData:指针事件数据   —鼠标与触摸事件的相关数据(点击、抬起、拖动等),UGUI中大部分事件数据类型都是PointerEventData类型 button:该属性有3个取值。分别是Left(鼠标左键)、Right(鼠标右键)、M...

weixin_30551963的博客 707

从补码原理到实践:RISC-V中addi指令的符号扩展机制详解

本文深入解析了RISC-V架构中addi指令的符号扩展机制。从补码的数学原理出发,详细阐述了12位立即数在指令编码中如何通过符号位进行扩展,并结合lui指令,揭示了加载任意32位立即数的正确方法与实践陷阱,帮助开发者编写高效可靠的底层代码。

weixin_29161719的博客 140

微信小程序scroll-view,点击menu,滚动到锚点;滚动到锚点,激活menu。

首先看看效果图1、首先是点击菜单,滚动列表,这个实现比较简单。直接使用scroll-view 的 scroll-into-view属性,小程序文档。&lt;view class='container'&gt; &lt;!-- 菜单 --&gt; &lt;view class='menu'&gt; &lt;ul&gt; &lt;!-- scrollList 修改cate --&g...

weixin_39834214的博客 1万+

js的基础用法二:绑定方式,事件类型,五大基本数据类型

1,绑定方式事件类型 var body = document.querySelector("body"); var eventDiv = document.createElement("div"); eventDiv.className = "eventDiv"; eventDiv.style.cssText = "width: 300px; height: 200px; border: 1px solid black;"; bod..

m0_48541096的博客 154

SAP生产订单(创建-下达-发料-报工-入库)全流程及反向流程

SAP创建下达报工入库发料以及取消发料取消入库,批量下达删除关闭,生产订单出入库查询和状态更改查询记录

weixin_38974136的博客 2万+

JavaScript数据类型 事件 及作用域

JavaScript数据类型 null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null指向为null,还没有指向任何的内存空间。 ""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = ""其值为""空字符串,这个str引用指向的是空字符串的内存空间; 字符串(String)、数字(Number)、布尔...

weixin_30413739的博客 125

【知识分享】什么是同轴传输线结构?

同轴传输线的几何形状由中心导体组,嵌在介电材料(Dielectric)中,并且,被连续的外导体所包围,也被称为屏蔽(Shield)。内外导体有相同的几何中心轴,因此得名同轴(Coaxial)。

一只豌豆象的博客 2372

Ubuntu搭建Pytorch环境(Anaconda、Cuda、cuDNN、Pytorch、Python、Pycharm、Jupyter)

Ubuntu搭建Pytorch环境(Anconda、Cuda、Pytorch、Python、Pycharm、Jupyter)

funfan的博客 1万+

【JavaScript用法】JavaScript(JS)的基本语法(JS数据类型,JS变量,JS运算符,JS流程控制语句)

JavaScript(JS)的基本语法 目录 JavaScript(JS)的基本语法 一. 与html结合方式 二. 注释 三. 数据类型: 四. 变量 五. 运算符(和Java有点类似) 六. 流程控制语句(和JAVA类似): 七. JS特殊语法: 一. 与html结合方式 1. 内部JS:定义<script>,标签体内容就是js代码(...

No8g攻城狮的博客 5106

[deprecated]第四章:TTM分析: 4.2.1 存储分配ttm_bo_validate功能实现分析

ttm_bo_validate是TTM框架中负责验证和调整BufferObject物理内存分配的核心函数,主要用于显存管理。该函数通过placement参数判断BO是否需要迁移或重新分配资源,完成内存分配、迁移及缓存策略调整等操作。实现流程包括资源释放、兼容性检查、迁移保护、新资源分配、迁移实现等步骤,支持多跳迁移和临时缓冲区。典型应用于显存溢出迁移、缓存策略调整、驱动初始化等场景,确保BO始终处于预期状态。

图形/计算GPU的驱动与虚拟化技术分享园地 846

【JavaScript】一篇文章,带你拿捏JS中的数据类型

JavaScript有8种数据类型:7种基本类型(String、Number、Boolean、null、undefined、Symbol、BigInt)和引用类型Object。基本类型存储在栈内存中,引用类型存储在堆内存中,栈中保存引用地址。字符串不可变,数组可变;数字采用IEEE754标准,存在精度问题;布尔值用于逻辑运算;null表示空值,undefined表示未赋值;Symbol创建唯一标识符;BigInt处理大整数。引用类型包括对象、数组、函数等。内存分为代码空间(存储代码)、栈空间(存储基本类型和

sunshine_dd的博客 1479

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【JavaScript】(二) JS数据类型

目录数据类型1、数据类型简介1.1 变量的数据类型1.2 数据类型的分类2、 简单数据类型2.1 基本数据类型2.2 数字型 Number2.2.1 数字型进制2.2.2 数字型范围2.2.3 数字型三个特殊值2.2.4 isNaN()2.3 字符串型 String2.3.1 字符串引号嵌套2.3.2 字符串转义符2.3.3 字符串长度2.3.4 字符串拼接2.3.5 字符串拼接加强2.4 布尔型 Boolean2.5 Undefined 和 Null3、 获取变量数据类型3.1 获取检测变量的数据.

weixin_48650082的博客 2084

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JavaScript 学习手册二:JS 数据类型

第1关:JavaScript 数据类型介绍 任务描述 本关任务:在函数 objectTest() 内部定义了六个变量 a、b、c、d、e、f,并已经赋值,你需要判断它们各是什么数据类型。变量 aType、bType、cType、dType、eType、fType 分别表示上面六个变量的数据类型的名字,你需要给他们赋值。比如变量 a 如果是数字类型,需要给变量 aType 赋值字符串 number。可选的数据类型名如下: number、string、bool、object、undefined 和 arra

weixin_54327001的博客 8432

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【JS】JavaScript入门笔记第一弹JS基本语法、变量、数据类型~_jsscript

💡💡*浏览器分成两部分:渲染引擎和JS引擎渲染引擎:用来解析HTML与CSS,俗称内核,JS引擎:也称为JS解释器。用来读取网页中的JavaScript代码,对其处理后运行ps:浏览器本身并不会执行JS代码,而是通过内置JavaScript引擎(解释器)来执行JS代码。JS引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行,所以JavaScript语言归为脚本语言,会逐行解释执行。💡💡变量:变量是用于存放数据的容器。

2501_90251128的博客 1557

[Javascript]:JS数据类型、类型判断、函数function与Function的使用

因为之前学过Java,在学习JS时,对JS的数据类型、function和Function的使用概念容易搞混淆,理解不怎么深刻。遂将这些知识点和概念梳理一遍,以便自己和他人理解。如有错误,敬请谅解。       知识点会涉及到:JS数据类型、JS的类型判断方式、函数创建方式、function与Function的区别、匿名函数的使用、函数特点以及函数重载问题。 Javascript数据类型

我只是个程序员。 1万+

JS学习篇(二) JavaScript七种数据类型

要了解一门语言,首先要了解它的数据类型有哪些?他们之间有什么关系?能否互相转换等。 目前,JavaScript(下称JS)中有七大数据类型,它们分别是: 1. Boolean 布尔型 2. Null 空 3. Undefined 未定义 4. Number 数字型 5. String 字符串型 ...

豪阁的个人博客 1853

细说JavaScript的数据类型(JavaScript的数据类型详解)

underfined(未定义)是一种特殊的数据类型,该类型中仅有一个值就是其本身,当变量未被初始化赋值的时候会默认为undefined,当没有声明变量num同时使typeof测试时,会提示undefined,需要注意的是直接在语句中使用未声明的变量时会报错。

zhishunet 1450

JavaScript数据类型及对象(js基础知识)

JavaScript中的数据类型   JavaScript中有七种数据类型,分别是number、string、boolean、symbol、undefined、null、object。我们所见到的数组以及函数等,并不是独立的一种数据类型,而是包含在object里的。 number   数字类型。 1. 十进制。表示数可以有’1’,’1.1’,’1.11e2’(科学计数法表示111)以及’...

夜落初阳,书写欢乐 3764

【JavaScript】JS中两种数据类型的传参

简单介绍【JavaScript】中两大数据类型的传参过程

一文不值的博客 644

javascript-js语法基础之数据类型

在学习JavaScript之前,应该先明白学习方向。ECMAScript(核心语言规范)、DOM(文档对象模型) 和 BOM(浏览器对象模型)。而这篇文章主要讲解ECMAScript(核心语言规范),即js语法基础。js的变量。

2303_76454687的博客 942

JavaScript数据类型和转化——JS

目录 1.数据类型 1.1为什么需要数据类型 1.2变量的数据类型 1.3数据类型分类 2.模板字符串(ES6新增),——模板字面量 2.1解析变量 2.2字符串可以换行 2.3调用函数 3.typeof和字面量 3.1typeof的使用 3.2字面量 4.数据类型的转换 4.1什么是数据类型 4.2转换为字符串类型 4.3转换为数字型 4.4转换为布尔型 1.数据类型 1.1为什么需要数据类型 因为不同数据所占用的存储空间不同,为了便于把数据分成所需内存大小

孙宇航的博客 1228

JavaScript 数据类型及转换

数据类型 数据类型指的就是字面量的类型 在js中一共有六种数据类型 String 字符串 Number 数值 Boolean 布尔值 Null 空值 Undefined 未定义 Object 对象其中String、Number、Boolean、Null、Undefined属于基本数据类型 而Object属于引用数据类型 Null(空值)类型的值只有一个,就是null nu

linggty的博客 2626

Js高级总结1 JavaScript数据类型

typeof:返回数据类型的字符串表达,可以判断 undefined 数值 字符串 布尔值 function,不能判断 null object array。test.call/apply(obj):obj.test(),让一个函数成为任意指定对象的方法进行调用。n个引用变量指向同一个对象,通过一个变量修改对象内部数据,另一个变量看到的是修改之后的数据。2个引用变量指向同一个对象,让其中一个引用变量指向另一个对象,另一引用变量依然指向前一对象。所有函数内部都有一个变量this,它的值是调用函数的当前对象。

weixin_54372875的博客 1070
上一篇: CSS中的伪类,应用场景?遮罩层与超链接样式
下一篇: 仿微软Video Indexer——视频断点播放与智能解析时间线的前端可视化实现
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值