前奏:在HTML中使用JavaScript

1_推荐src引用外部JavaScript文件,方便管理与维护,标签位置在页面最下面,使浏览器更优先加载页面内容。

2_HTML页面需要有标准的文档类型申明DOCTYPE,否则会触发混杂模式,页面非常容易出错。

3_考虑禁用JavaScript的场景。

<body> 

...

//当浏览器不支持javascript或被禁用时,会呈现<noscript>标签内的内容。
<noscript>
<p>本页面需要浏览器支持JavaScript.</p>
</noscript>
</body>

        1. 基本语法

1.  ECMAScript中的一切(变量,函数名和操作符)都区分大小写。

2.  标识符命名: 首字符必须字母,下划线或$美元符号,数字不能在第一个。(关键字和保留字不能作为标识符)

3.  严格模式 “use strict” 定义了一种要求更高的解析和执行模型

function doSomething(){
"use strict"
//函数体
}

       2. 数据类型

数据类型分为基本类型和复合类型。

变量:变量在本质上就是命名的内存空间。

变量的数据类型:就为上面提供的6种数据类型,不过变量的数据类型是动态的,可以在运行时改变变量的数据类型。

变量类型:值类型和引用类型两种,当变量的数据类型是简单数据类型时,变量类型就是值类型,当变量的数据类型是对象类型时,变量类型就是引用类型。

值类型的变量存储的就是变量值本身,引用类型的变量存储的是一个指向变量值的指针(地址)。

基本数据类型:number,boolean 、string 、null和 undifined。

number 整型或浮点型
boolean 布尔类型,true或false (注意区分大小写,必须都为小写时才是)
string 字符串,单双引号都可以
null 表示一个空对象指针,
undefined 变量申明未定义时为undefined,
object 数据和功能的集合

number类型

1. 八进制在严格模式下无效,十六进制前两位必须为0x,计算式都将转换为十进制

2. 取值范围,使用全局isFinite()函数判断是否超出范围,如果在范围内则为true,如果在范围外则为false.

Number.MAX_VALUE; /* 最大数值(JS 可以表示的) */
Number.MIN_VALUE; /* 最小数值(JS 可以表示的) */
Number.NEGATIVE_INFINITY; /* 负无穷大,值为-Infinity */
Number.POSITIVE_INFINITY; /* 无穷大 值为Infinity */

3. NaN和isNaN()

NaN是number类型,但不是数字,一旦程序中出现了NaN,说明出现了问题,

NaN的布尔属性为false,NaN和任何值都不相等,包括NaN本身。

任何涉及NaN的操作都会返回NaN。

isNaN()

里面的数据首先通过number()方法转换,

如果能够转为数字,则isNaN()为 false。

如果不能转为数字,则isNaN()为true。

4.数值转换

  1. Number()函数:将数据整体转换成Number类型,和使用一元加操作符(+)作用相同,建议使用 + 操作符,比较简单。 直接加一个空字符串。

  2. parseInt()函数:解析整数,从左往右,遇到非数字即停止,可以传入数据和进制,如parseInt('070',8)输出10进制的56。
  3. parseFloat()函数:解析浮点数,从左往右,会识别第一个小数点,只能接受一个参数,需要注意的是,如果被解析的数据结果是整数,会直接返回整数。

boolean类型

Boolean类型只有:true和false。注意区分大小写,其它形式的都不是,例如True和False.

1. 任何一种数据类型的值都能转换为与其相对应的Boolean值,转换方式主要有三种:

  显示转换:转型函数Boolean()

隐式转换,比如条件语句if

2.在转换为数值时,true和false分别转换为1和0,转换为字符串时,分别为'true'和'false'。

3.Boolean类型的true和false,使用typeof时,均返回字符串'boolean'。

string类型

1.隐式转换,任何一个数值与字符串相加,都会将其使用String()转换成字符串,然后将两个字符串合并。

2.显示转换String(),

3.字符串使用反斜杠“\”来转义,常见的转义字符:

字面量 含义 字面量 含义 字面量 含义
\n 换行 \t 制表 \b 空格
\r 回车 \f 进制 \\ 反斜杠
\’ 单引号 \” 双引号    
\xnn 以十六进制代码nn表示的一个字符 \unnnn 以十六进制代码nnnn表示的一个Unicode字符    

null和undefined区别

 

null

undefined

表示 空对象指针 尚未定义的变量
typeof运算结果 object undefined
  undefined派生null,使用==判断为true undefined派生null,使用==判断为true
  如果定义变量准备在将来保存对象,
那么最好将变量初始化为null.
无论申明情况下后没有必要将一个变量显示设置为undefined.

这五种基本数据类型可以直接操作保存在变量中的实际值

基本数据类型都保存在内存中的栈区。

引用(复合)数据类:javascript引用数据类型是保存在堆内存中,JavaScript不允许直接访问堆内存空间中的位置和操作堆内存空间,只能通过操作对象在栈内存中的引用地址。

所以引用类型的数据,在栈内存中保存的实际上是对象在堆内存中的引用地址。通过这个引用地址可以快速查找到保存在堆内存中的对象。

注意:如果obj b重新赋值操作时, obj a指向原本的对象不变,obj b指向新的对象,赋值和复制操作不一样。

引用类型是可以添加属性,基本类型虽然也可以添加属性,也不会报错,但是却无法访问

JavaScript-基本语法和数据类型的更多相关文章

  1. JavaScript的语法、数据类型、基本算数和逻辑运算操作

    str.toString() 可以把字符串.数值.布尔值.对象转为字符串 String(str) 任何数值强制转换为字符串类型 <!DOCTYPE html> <html lang= ...

  2. 02JavaScript基础语法及数据类型

    JavaScript基础语法及数据类型 2.1数据类型 2.1.1字符串(String) 用单引号或双引号括起来的零个或多个单一的字符所组成. 2.1.2数值(Number) 包含整数或浮点数. 2. ...

  3. javascript基础语法备忘录-变量和数据类型

    //javascript基础语法备忘录-变量和数据类型 // 定义变量使用var关键字 后面跟变量名,不要使用eval 和arguments为变量名 var message = "hi&qu ...

  4. JavaScript 基本语法 -- 数据类型 & 变量

    JavaScript都有哪些数据类型呢? 在JavaScript里面,数据类型分为两类:原始类型(primitive type)和对象类型(object type) 1. 原始类型(我的理解,不可分割 ...

  5. JavaScript基本语法(一)

    前段时间学习了HTML和CSS,也实战了一些结构较简单的项目.在还没运用到JS的知识时,做出来的效果总觉得少了些什么.虽然总体布局与一些基本的特效,也能用HTML+CSS就能完成.但如今开始进入Jav ...

  6. javascript运算符语法概述

    × 目录 [1]个数 [2]优先级 [3]结合性[4]类型[5]规则表 前面的话 javascript中的运算符大多由标点符号表示,少数由关键字表示,它们的语法言简意赅,它们的数量却着实不少.运算符始 ...

  7. javascript基础语法——词法结构

    × 目录 [1]java [2]定义 [3]大小写[4]保留字[5]注释[6]空白[7]分号 前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫 ...

  8. 【repost】JavaScript 基本语法

    JavaScript 基本语法,JavaScript 引用类型, JavaScript 面向对象程序设计.函数表达式和异步编程 三篇笔记是对<JavaScript 高级程序设计>和 < ...

  9. 一、JavaScript概述 二、JavaScript的语法 三、JavaScript的内置对象

    一.JavaScript的概述###<1>JavaScript的概念 又称ECMAScript,和java没有任何关系 嵌入在HTML元素中的 被浏览器解释运行的 一种脚本语言. ###& ...

  10. Unit04: JavaScript 概述 、 JavaScript 基础语法 、 流程控制

    Unit04: JavaScript 概述 . JavaScript 基础语法 . 流程控制 my.js function f3() { alert("唐胜伟"); } demo1 ...

随机推荐

  1. linux下安装Nginx1.16.0

    因为最近在倒腾linux,想安装新版本的nginx,找了一圈教程没有找到对应的教程,在稍微倒腾了一会之后终于成功的安装了最新版. 服务器环境为centos,接下来是详细步骤: 安装必要依赖插件 yum ...

  2. 基于 ZooKeeper 搭建 Spark 高可用集群

    一.集群规划 二.前置条件 三.Spark集群搭建         3.1 下载解压         3.2 配置环境变量         3.3 集群配置         3.4 安装包分发 四.启 ...

  3. win2008环境mysql主从配置

    一.主库相关配置.设置 step1:主库配置文件 [mysqld] # 数据库id,唯一 server-id = 1# 二进制日志文件,必填项,否则不能同步数据;如果不取名字的话,会以计算机的名字加编 ...

  4. 一步一步教你用IntelliJ IDEA 搭建SSM框架(3)——实现用户登录功能

    上面两篇博客已经详细的介绍了在IntelliJ IDEA 搭建SSM框架的整个过程,下面我们就要在搭建好的环境里实现我们想要的功能了.本文完成用户的登录功能,主要包括:用户注册,登录,编辑,退出,注销 ...

  5. SQL Server 2012完全备份、差异备份、事务日志备份和还原操作;

    SQL Server 2012完全备份.差异备份.事务日志备份和还原操作: 1.首先,建立一个测试数据库,TestA:添加一张表,录入二条数据:备份操作这里我就不详细截图和讲解了.相信大家都会备份,我 ...

  6. 如何使用共享网卡的NAT模式配置VMware12中的CentOS6.7的上网功能

    1.首先共享网卡的NAT模式是通过win10中的VMnet8来通信的,如下双击VMnet8 2.点击[详细信息]查看VMnet8的IPV4地址为192.168.232.110,掩码为255.255.2 ...

  7. 交叉编译多平台 FFmpeg 库并提取视频帧

    原文地址: 交叉编译多平台 FFmpeg 库并提取视频帧 交叉编译多平台 FFmpeg 库并提取视频帧 本文档适用于 x86 平台编译 armeabi.armeabi-v7a.arm64-v8a.x8 ...

  8. 如何安装xenserver

    xenserver安装 选择键盘 是否同意协议 清理磁盘 选择本地磁盘安装 选择本地镜像文件 输入管理密码 配置IP地址 配置DNS服务器地址 选择地点 配置NTP服务器地址 开始安装 安装完成

  9. 【HDU - 1495】非常可乐

    -->非常可乐  Descriptions: 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一 ...

  10. 设计模式-模块方法模式(TemplateMethod)

    模块方法模式是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为. UML图: 具体代码: /** * 抽象-模块方法模式核心 */ ...