广告
返回顶部
首页 > 资讯 > 精选 >HTML5 入门教程
  • 443
分享到

HTML5 入门教程

2023-06-09 10:06:38 443人浏览 薄情痞子
摘要

本篇内容主要讲解“HTML5 入门教程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5 入门教程”吧!javascript作为一种弱类型语言,最大的特点就是动态类型。也就是说不用提前声明

本篇内容主要讲解“HTML5 入门教程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习html5 入门教程”吧!

javascript作为一种弱类型语言,最大的特点就是动态类型。也就是说不用提前声明变量的类型,在程序运行时,类型会被动态的确定,并且在执行过程中可以动态的修改变量的类型。同时不同类型变量在运算时会自动进行隐式的类型转换。以下是一些常见的隐式转换示例:

var foo = 2020;     // typeof foo -> "number"var foo = "Spreadjs"     // typeof foo -> "string"var foo = true + 1;         // foo = 2 typeof foo -> " number"var foo = true + false;      // foo = 1 typeof foo -> " number"var foo = '5' - '2';          // foo = 3 typeof foo -> " number"var foo = 20 + 20 + "SpreadJS" // foo = "40SpreadJS" typeof foo -> "string"var foo = "SpreadJS" + 20 + 20 // foo = "40SpreadJS" typeof foo -> " string"

依据最新的 ECMAScript 标准将数据类型定义了 8 种:

其中为原始类型:Boolean、Null、Undefined、Number、BigInt、String、Symbol 和对象类型:object

关于原始类型需要知道的几个知识点:

  • 原始类型的值是按值访问的 

即在赋值和修改值时是通过值传递的方式来完成的,对变量赋值或者修改值会在内存中重新分配空间。

例如:

var a, b, x, y;a = " SpreadJS";b = " GrapeCity";x = a;y = b;console.log(a, b, x, y);   // result:  SpreadJS GrapeCity SpreadJS GrapeCity

a和x, b和y之间赋值是完全独立的拷贝,互不干涉,如果我们将其中任何一个变量的值重新改变,其他相同值的变量也不会受到任何影响。

  • 严格相等===和非严格相等==

对于原始类型,==只进行值比较,如果是不同类型则会在转换后再比较,===则会比较数据类型。

例如:

undefined === null //fasleundefined == null //truetrue === 1 //fasletrue == 1 //truenull == 0 //false
  • Null 和 Undefined

null和undefined在使用中几乎没有区别,在使用非严格相等比较时结果也为true,它们的区别就是在于进行数值转换时它们的字面意义不同,undefined代表未定义,转为数值为NaN,而null为空、转为数值时为0。

例如:

Number(undefined)    //NaNNumber(null)    //01 + undefined   //NaN1 + null    //1

虽然两者差别不大,并不会严格按照上面的区分去使用,但在实际项目应用中,对于空值的判断两者则都需要考虑。

  • NaN

NaN 即 Not a Number ,表示了非数字类型,任何和NaN的操作返回值都是NaN,NaN不等于NaN。其中有一个全局方法 isNaN(),它的作用是检查一个值是否能被 Number() 成功转换。 如果能转换成功,就返回 false,否则返回 true 。

例如:

NaN == NaN;     // fasleisNaN('123')   // false 能转换isNaN('abc')    // true 不能转换
  • 浮点数精度误差

在JavaScript中,整数和浮点数都属Number数据类型,所有数字都是以64位浮点数形式存储的,也就是说JavaScript底层没有整数,1和1.0是相同的。

下面举几个例子来说明:

// 加法0.1 + 0.2 = 0.300000000000000040.1 + 0.7 = 0.79999999999999990.2 + 0.4 = 0.6000000000000001 // 减法0.3 - 0.2 = 0.099999999999999981.5 - 1.2 = 0.30000000000000004 // 乘法0.8 * 3 = 2.400000000000000419.9 * 100 = 1989.9999999999998 // 除法0.3 / 0.1 = 2.99999999999999960.69 / 10 = 0.06899999999999999 // 比较0.1 + 0.2 === 0.3 // false(0.3 - 0.2) === (0.2 - 0.1) // false

类似这样看起来不会算错的问题,在某些系统尤其是涉及财务的系统中会是一个严重的问题,这里就不展开解释发生误差的原因了,大家可自行研究,我们这只对解决方案简单的列一下,1. 可以通过引用类似Math.js、decimal.js、big.js这样的类库。2.对于对数字精度要求不高的系统,可以格式化并保留x位小数来处理。3. 计算时,将小数部分和整数部分分开计算再合并,等。

关于引用类型需要知道的几个知识点:

  • 引用类型的值是按引用访问的

在操作对象时,实际上是在操作对象的引用而不是实际的对象。给变量赋值改变的是对象的引用关系。

例如:

var obj1 = {a:1};var obj2 = obj1;obj1.a = 2;console.log(obj2.a) // result: 2.obj1和obj2为同一对象obj1 = {a:3};console.log(obj2.a) // result: 2.obj1指向新对象,obj2不变
  • 引用类型===和==意义相同都为引用的比较

即是否为同一对象,各类型之间的非严格相等==比较类型转换可参考下表

被比较值 B


  

Undefined

Null

Number

String

Boolean

Object

被比较值 A

Undefined

true

true

false

false

false

IsFalsy(B)

Null

true

true

false

false

false

IsFalsy(B)

Number

false

false

A === B

A === ToNumber(B)

A=== ToNumber(B)

A== ToPrimitive(B)

String

false

false

ToNumber(A) === B

A === B

ToNumber(A) === ToNumber(B)

ToPrimitive(B) == A

Boolean

false

false

ToNumber(A) === B

ToNumber(A) === ToNumber(B)

A === B

ToNumber(A) == ToPrimitive(B)

Object

false

false

ToPrimitive(A) == B

ToPrimitive(A) == B

ToPrimitive(A) == ToNumber(B)

A === B

类型检测

JavaScript中类型检测方法有很多,有例如:typeof、instanceof、Object.prototype.toString、constructor、duck type这几种。

虽然方法很多,但判断思路就是两种:1根据数据类型判断 2 根据构造函数判断。

  • typeof

typeof可以判断数据类型,依据之前的介绍,javascript变量类型分为值类型和引用类型,typeof应用场景只可以区分值类型的数据类型,例如:

typeof 42 // "number"typeof {} // "object"typeof undefined // " undefined"
  • instanceof

和typeof一样,instanceof用于判断引用类型的数据类型。

例子:

(function(){}) instanceof Function

其他的还有Object.prototype.toString、constructor、duck type,在这就不一一介绍。

到此,相信大家对“HTML5 入门教程”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: HTML5 入门教程

本文链接: https://www.lsjlt.com/news/255576.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HTML5 入门教程
    本篇内容主要讲解“HTML5 入门教程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5 入门教程”吧!JavaScript作为一种弱类型语言,最大的特点就是动态类型。也就是说不用提前声明...
    99+
    2023-06-09
  • ECMAScript6入门教程
    目录你的浏览器支持ES吗?ES 6 新特性汇总(一图全览)1. let、const 和 block 作用域2. 箭头函数(Arrow Functions)3. 函数参数默认值4. S...
    99+
    2022-11-13
  • maven3 入门教程
    Maven库: http://repo2.maven.org/maven2/ Maven依赖查询: http://mvnrepository.com/ Maven常用命令:  1. 创建Maven的普通java项目:  ...
    99+
    2023-01-31
    入门教程
  • Flask 入门教程
    Flask 入门教程 一、Flask简单使用 1、准备环境 硬件:Windows 7+python 3.6+安装软件:pycharm安装(社区版)、python环境安装 2、简单的Flask应用 本地...
    99+
    2023-10-07
    flask python 后端
  • Navicat入门教程
    本篇内容主要讲解“Navicat入门教程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Navicat入门教程”吧!一、 连接使用 1.1 连接数据库打...
    99+
    2022-10-18
  • node.js入门教程
    Node是个啥?   写个东西还是尽量面面俱到吧,所以有关基本概念的东西我也从网上选择性的拿了些下来,有些地方针对自己的理解有所改动,对这些概念性的东西有过了解的可选择跳过这段。   1.Node 是一个服...
    99+
    2022-06-04
    入门教程 node js
  • Jmeter入门教程
    目录一、下载二、安装三、运行四、一个简单的压测实例五、如何查看系统负载何性能瓶颈jemter简介 jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全...
    99+
    2022-11-12
  • ECharts入门教程
    Echart 官网:https://echarts.apache.org/zh/index.html下载页面:https://echarts.apache.org/zh/downlo...
    99+
    2022-11-13
  • IPv6入门教程
    本篇文章主要从基础概念、IPv6的相关网络工具、关于移动应用在IPv6和IPv4网络环境中自动降级机制的研究等三个方面介绍了IPv6的入门教程。前言众所周知,32位的IPv4地址已经基本耗尽(这里的耗尽只是说的分配完了,实际上有相当一部分并...
    99+
    2023-06-03
  • Lighttpd入门教程
    Lighttpd入门教程 概述入门教程安装配置静态文件服务动态文件服务 虚拟主机SSL启动服务器日志模块总结lighthttpd使用场景和原理使用场景原理 概述 Lightt...
    99+
    2023-09-04
    服务器 linux ubuntu
  • 完全不用基础的HTML5入门篇教程
    目录html5简介新特征HTML5的一些改进HTML5的多媒体注释:基础标题HTML段落HTML链接一个简单的代码例子html5简介 HTML5是构建Web内容的一种语言描述方式。H...
    99+
    2022-11-13
  • Python入门教程(二)
      今天讲编程思维。  可能这对初次接触编程的人有用——我不是不想切入正题,我只是想强调根本没什么正题,我可能在其他文章里提过这一点。“编程语言就是语法糖”,可能你不知道什么是语法糖,但是知道的人也未必认同我。我不保证你们能听懂……pyth...
    99+
    2023-01-31
    入门教程 Python
  • python入门教程(零)
    (本文针对Windows)   Python是什么?是一种编程语言。编程语言是什么?就是和机器说话的方式。编译器和解释器好比翻译,把你的话翻成机器听得懂的。但是这些翻译不怎么智能(虽然也有高下),你必须说一套很机械的官腔,他们才帮你翻译——...
    99+
    2023-01-31
    入门教程 python
  • linux入门教程(3)
    (文:flynng)  3.4 进程管理  Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。  在Linux系统...
    99+
    2023-01-31
    入门教程 linux
  • Android RecylerView入门教程
    今年Google I/0大会,Google开放了两个全新的视图:RecyclerView和CardView。这篇文章会提供关于RecylerView的简介。 RecylerVi...
    99+
    2022-06-06
    教程 Android
  • pgpool-II 入门教程
    欢迎阅读 pgpool-II 入门教程。从本教程中,你将学会如何安装,设置 pgpool-II 以及使用 pgpool-II 运行并行查询和复制。我们假设你已经知道PostgreSQL的基础操作,所以如果...
    99+
    2016-11-03
    pgpool-II 入门教程
  • python pygame入门教程
    目录一、安装二、第一个代码实例三、绘制一个矩形框四、绘制矩形框的进阶版本五、绘制一条直线六、绘制一条弧线一、安装 在 cmd 命令中输入: pip install pygame 即可安装成功了 二、第一个代码实例 代...
    99+
    2022-06-02
    python pygame pygame入门教程
  • python jupyter入门教程
    目录1.jupyter2.jupyter基础操作2.1windows更新pip库2.2jupyter安装2.3初次启动jupyter2.4设置密码进入jupyter3.创建一个jupyter文本4.jupyter文本...
    99+
    2022-06-02
    python jupyter入门 python jupyter
  • nodejs教程之入门
    前言 再不学nodeJs,我们就老了......在HTML5大浪袭来的时候,很多先辈就开始了NodeJs之旅,而那时我还在做服务器端的程序 后来转成前端,和梯队的距离已经很大了,因为我会服务器端语言,还干了...
    99+
    2022-06-04
    入门 教程 nodejs
  • python入门教程(一)
      我们依然不讲代码,而是先说命令行。   为什么命令行如此重要?之前说到,命令行是你和电脑对话的地方。你可以用句子的方式把信息发给电脑,电脑再以句子的方式给你回应。在编程领域,有些消息只能用命令行告诉电脑——或许是编程人员早就习惯了,或许...
    99+
    2023-01-31
    入门教程 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作