前奏:在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. java中list和Arrylist的区别

    List:是一个有序的集合,可以包含重复的元素.提供了按索引访问的方式.它继承 Collection. List有两个重要的实现类:ArrayList 和 LinkedList ArrayList:我 ...

  2. ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程

    在前面随笔介绍的<ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理>里面,介绍了如何改进和完善审计日志和登录日志的应用服务端和Winform客户端,由于篇幅限制,没有进 ...

  3. java线程的简单实用

    1.start(): 先来看看Java API中对于该方法的介绍: 使该线程开始执行:Java 虚拟机调用该线程的 run 方法. 结果是两个线程并发地运行:当前线程(从调用返回给 start 方法) ...

  4. Hadoop 学习之路(六)—— HDFS 常用 Shell 命令

    1. 显示当前目录结构 # 显示当前目录结构 hadoop fs -ls <path> # 递归显示当前目录结构 hadoop fs -ls -R <path> # 显示根目录 ...

  5. 【PostgreSQL】 前缀模糊查询级优化

    前匹配模糊 使用B-Tree来加速优化前匹配模糊查询 构造数据 新建一张商品表,插入一千万条数据. create table goods(id int, name varchar); insert i ...

  6. Codeforces 348B:Apple Tree(DFS+LCM+思维)

    http://codeforces.com/contest/348/problem/B 题意:给一棵树,每个叶子结点有w[i]个苹果,每个子树的苹果数量为该子树所有叶子结点苹果数量之和,要使得每个结点 ...

  7. SqlCommand的Parameters的用法

    SqlCommand的Parameters的用法 可以用的SqlCommand的Parameters的方法SqlCommand cmd=new ("insert into notice(ly ...

  8. hdfs文件写入kafka集群

    1. 场景描述 因新增Kafka集群,需要将hdfs文件写入到新增的Kafka集群中,后来发现文件不多,就直接下载文件到本地,通过Main函数写入了,假如需要部署到服务器上执行,需将文件读取这块稍做修 ...

  9. [POI2007]洪水pow 题解

    [POI2007]洪水pow 时间限制: 5 Sec  内存限制: 128 MB 题目描述 AKD市处在一个四面环山的谷地里.最近一场大暴雨引发了洪水,AKD市全被水淹没了.Blue Mary,AKD ...

  10. 基础篇-1.2Java世界的规章制度(上)

    1 Java标识符 在Java语言中,有类.对象.方法.变量.接口和自定义数据类型等等,他们的名字并不是确定的,需要我们自己命名.而Java标识符就是用来给类.对象.方法.变量.接口和自定义数据类型命 ...