JavaScript基础学习(二)—JavaScript基本概念
一、语法
1.区分大小写
JavaScript是一种弱类型的脚本语言。它区分大小写,变量名test与Test表示两个完全不同的变量。
2.标识符
所谓标识符就是变量、函数、属性的名字,它有以下规则。
(1)第一个字符必须是一个字母、下划线、或$。
(2)其他字符可以是字母、数字、下划线、$。
按照惯例,我们都采用驼峰大小写格式,也就第一个字母小写,其他字母大写。
3.注释
JavaScript包括单行注释和多行注释。
<script type=text/javascript>
//这是单行注释
/*
* 这是多行注释
*/
</script>
4.变量
JavaScript的变量是松散类型的。所谓松散类型就是可以保存任何类型的数据。定义变量时使用var操作符,后跟变量名。
vae message;
这行代码定义了一个名为message的变量,该变量可以用来保存任何值,像这种未经过初始化的变量,会保存一个特殊值—undefined。
4.1 全局变量和局部变量
全局变量
(1)在方法外部声明的变量。
(2)在方法内部,但是没有加var关键字声明的变量。
局部变量
在方法内部使用var声明的变量。
//这是全局变量
var a = 10; function test(){ //这是全局变量
b = 20; //这是局部变量
var c = 30; } test(); alert("a = " + a); //10
alert("b = " + b); //20
alert("c = " + c); //错误
二、数据类型
JavaScript有5种简单的基本数据类: Undefined、Null、Boolean、Number、String。还有一种复杂的数据类型—Object。
1. typeof操作符
由于JavaScript是松散类型的,因此需要有一种手段来检测给定变量的数据类型。typeof操作符就是负责这方面信息的。
undefined: 这个值未定义。
boolean: 这个值是布尔值。
string: 这个值是字符串。
number: 这个值是数值。
object: 这个值是对象或null。
function: 这个值是函数。
function test(){
}
var a1;
var a2 = true;
var a3 = "hello";
var a4 = 10;
var a5 = null;
var a6 = test;
alert(typeof a1); //undefined
alert(typeof a2); //boolean
alert(typeof a3); //string
alert(typeof a4); //number
alert(typeof a5); //object
alert(typeof a6); //function
2. Undefined类型
Undefined类型只有一个值,就是特殊的undefined。在使用var声明变量但未对其加以初始化,这个变量的值就是undefined。
var a1;
alert(a1 == undefined); //true
3. Null类型
Null类型也只有一个值,这个值就是null。null值表示一个空对象指针,如果定义的变量准备在将来用来保存对象,那么最好将该变量初始化为null而不是其他值。这样一来直接检测null值就可以知道相应的变量是否保存了一个对象的引用。
实际上,undefined值是派生自null值的。因此相等性测试返回true。
alert(null == undefined); //true
尽管null和undefined之间有这样的关系,但是它们的用途却完全不同。无论什么情况下,都没有必要把一个变量的值显示的设置为undefined。同样的规则对null却不适用,只要想保存的对象的变量还没有真正保存对象,就应该明确的让该变量保存null值。
4. Boolean类型
该类型有两个字面值:true和false。true不一定等于1,而false也不一定等于0。要将一个值转换为对应的Boolean值,可以调用转型函数Boolean()。
var a1 = "hello";
var a2 = ""; alert(Boolean(a1)); //true
alert(Boolean(a2)); //false
至于返回的值是true还是false,要取决于转换值的数据类型及其实际值。下表给出了各种类型及其转换规则。
| 数据类型 | 转换为true的值 | 转换为false的值 |
| Boolean | true | false |
| String | 任何非空字符串 | ""(空字符串) |
| Number | 非零数字值(包括无穷大) | 0和NaN |
| Object | 任何对象 | null |
| Undefined | undefined |
var a1 = "hello";
var a2 = "";
var b1 = 10;
var b2 = NaN;
var b3 = 0;
var c1 = null;
var d1 = undefined; alert(Boolean(a1)); //true
alert(Boolean(a2)); //false
alert(Boolean(b1)); //true
alert(Boolean(b2)); //false
alert(Boolean(b3)); //false
alert(Boolean(c1)); //false
alert(Boolean(d1)); //false
5. Number类型
分为整数、浮点数、NaN、Infinity、-Infinity。
5.1 浮点数
浮点数值的最高精度是17为小数,但在进行算术计算时其精度远远不如整数。比如,0.1+0.2结果不是0.3而是0.30000000000000004。
var a = 0.1;
var b = 0.2;
var c= a + b; alert(c); //0.30000000000000004
永远不要测试某个特定的浮点数值。
5.2 NaN
NaN即Not a Number是一个特殊的数值。这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。在JavaScript中,任何数值除以0都会返回NaN。NaN有两个特点:
(1)任何涉及NaN的操作都会返回NaN。
(2)NaN与任何值都不相等。
针对这两特点,JavaScript有isNaN()函数,在接收到一个值之后,会尝试将这个值转换为数值,任何不能转换为数值的值都会导致这个函数返回true。
alert(isNaN(NaN)); //true
alert(isNaN(10)); //false (10是一个数值)
alert(isNaN("10")); //false (可以被转换为数值10)
alert(isNaN("blue"));//true
alert(isNaN(true)); //false(可以转换成数值1)
5.3 数值转换
Number(): 可以用于任何数据类型。
parseInt()和parseFloat()用于字符串。
alert(Number(true)); //1
alert(Number(false)); //0
alert(Number(null)); //0
alert(Number(undefined)); //NaN
alert(Number("123")); //123
alert(Number("0xf")); //15
alert(Number("")); //0
alert(Number("hello")); //NaN
6. String类型
要把一个值转换为一个字符串有两种方式。第一种就是使用每个值都有的toString()方法。
var a1 = 10;
var str1 = a1.toString(); //"11"
var a2 = true;
var str2 = a2.toString(); //"true"
但是null与undefined没有此方法。我们还可以使用String()函数,这个函数能将任何类型的值转换为字符串。它有以下规则。
(1)如果有toString()方法,则调用该方法并返回相关结果。
(2)如果值是null就返回"null",如果是undefined就返回"undefined"。
var a;
alert(String(true)); //"true"
alert(String(10)); //"10"
alert(String(null)); //"null"
alert(String(a)); //"undefined"
JavaScript基础学习(二)—JavaScript基本概念的更多相关文章
- JavaScript基础学习(一)—JavaScript简介
一.JavaScript概述 JavaScript是一种专为与网页交互的脚本语言,由三部分组成. ECMAScript 核心,提供核心语言功能. BO ...
- JavaScript 基础学习(二)js 和 html 的结合方式
第一种 使用一个标签 <script type="text/javascript"> js代码; </script> 第二种 使用 script 标签,引入 ...
- JavaScript 基础 学习 (二)
JavaScript 基础 学习 节点属性 每一个节点都有自己的特点 这个节点属性就记录着属于自己节点的特点 1. nodeType(以一个数字来表示这个节点类型) 语法:节点.nodeT ...
- JavaScript 基础学习1-day14
JavaScript 基础学习1 知识预览JavaScript概述二 JavaScript的基础三 JavaScript的对象BOM对象DOM对象实例练习js扩展 JavaScript概述 JavaS ...
- JavaScript基础笔记二
一.函数返回值1.什么是函数返回值 函数的执行结果2. 可以没有return // 没有return或者return后面为空则会返回undefined3.一个函数应该只返回一种类型的值 二.可变 ...
- 48.javascript基础学习
javascript基础学习: http://www.w3school.com.cn/jsref/index.asp jS的引入方式: 1.行间事件:为某一个具体的元素标签赋予js内容,oncli ...
- JavaScript 基础 学习 (四)
JavaScript 基础 学习 (四) 解绑事件 dom级 事件解绑 元素.on事件类型 = null 因为赋值的关系,所以给事件赋值为 null 的时候 事件触发的时候,就没有事件处理 ...
- JavaScript 基础 学习(三)
JavaScript 基础 学习(三) 事件三要素 1.事件源: 绑定在谁身上的事件(和谁约定好) 2.事件类型: 绑定一个什么事件 3.事件处理函数: 当行为发生的时候,要执行哪一个函数 ...
- JavaScript 基础 学习 (一)
JavaScript 基础 学习 获取页面中的元素的方法 作用:通过各种方式获取页面中的元素 比如:id,类名,标签名,选择器 的方式来获取元素 伪数组: 长的和数组差不多,也是按照索引排 ...
随机推荐
- C# winform程序免安装.net framework在XP/win7/win10环境运行!
前文: 首先感谢群里的大神宇内流云 提供的anyexec for windows版本. 经过本人搭建虚拟机在xp环境 使用anyexec运行winfrom程序后,测试通过,如下是用的xp运行winfr ...
- delegate vs event
What are the differences between delegate and an event? An event declaration adds a layer of abstrac ...
- C语言程序的三种基本结构
1.程序结构:在C语言程序中,一共有三种程序结构:顺序结构.选择结构(分支结构).循环结构: 顺序结构:从头到尾一句接着一句的执行下来,直到执行完最后一句: 选择结构:到某个节点后,会根据一次判断的结 ...
- 什么是vue?
vue就是一个js库,并且无依赖别的js库,直接引入一个js文件就可以使用,跟jquery差不多.vue是法语中视图的意思,Vue.js是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的 ...
- Kettle 5.0源码编译
下载源码请参考上一篇博文Kettle4.4.2源码分析 Kettle 5.0以前的库文件通过ant管理,5.0+的库文件通过ant+ivy管理.Eclipse一般都是安装ant插件,不安装ivy插件, ...
- Keepalived + HAProxy 搭建【第一篇】HAProxy 的安装与配置
第一步:准备 1. 操作系统 CentOS-7-x86_64-Everything-1511 2. 安装包 haproxy-1.7.2.tar.gz 第二步:安装 # tar zxvf haproxy ...
- 局域网里连接mysql服务器,其他人连接自己的mysql服务器
应用场景: 自己在自己的机器上开发网站,同事也要和我一起开发,就两个人,我自己的机器当做服务器,让他直接连我的数据库,看我的项目就行了,并且用svn进行开发,相当不错 问题: 怎样在局域网里,其他人 ...
- Java并发之任务的描述和执行
简单概念 <Java编程思想>对并发概念的重要性阐述: Java是一种多线程语言,并且提出了并发问题,不管你是否意识到了.因此,有很多使用中的Java程序,要么只是偶尔工作,要么是在大多数 ...
- C++ 构造函数或析构函数调用虚函数
构造函数和析构函数中的虚函数 在执行基类构造函数时,对象的派生类部分是未初始化的.实际上,此时对象还不是一个派生类对象. 为 了适应这种不完整,编译器将对象的类型视为在构造或析构期间发生了变化.在基类 ...
- Tp框架之模型层
数据模型层是专门针对数据库来操作的 我们在home模块用一下数据模型层 先把配置修改好 我们先来打开这个文件 然后再打开think里面的主配置,把那里面关于数据库的部分,复制到home下的配置文件,然 ...