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); //10alert("b = " + b); //20alert("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); //undefinedalert(typeof a2); //booleanalert(typeof a3); //stringalert(typeof a4); //numberalert(typeof a5); //objectalert(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)); //truealert(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)); //truealert(Boolean(a2)); //falsealert(Boolean(b1)); //truealert(Boolean(b2)); //falsealert(Boolean(b3)); //falsealert(Boolean(c1)); //falsealert(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)); //truealert(isNaN(10)); //false (10是一个数值)alert(isNaN("10")); //false (可以被转换为数值10)alert(isNaN("blue"));//truealert(isNaN(true)); //false(可以转换成数值1)
5.3 数值转换
Number(): 可以用于任何数据类型。
parseInt()和parseFloat()用于字符串。
alert(Number(true)); //1alert(Number(false)); //0alert(Number(null)); //0alert(Number(undefined)); //NaNalert(Number("123")); //123alert(Number("0xf")); //15alert(Number("")); //0alert(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"
转载于:https://www.cnblogs.com/yangang2013/p/5431820.html
JavaScript基础学习(二)—JavaScript基本概念相关推荐
- javaScript基础学习 - 14 - JavaScript内置对象 -案例代码
javaScript基础学习 - 14 - JavaScript内置对象 -案例代码 1. Math对象最大值 2. 封装自己的数学对象 3. Math绝对值和三个取整方法 4. Math对象随机数方 ...
- JavaScript基础学习(一)—JavaScript简介
一.JavaScript概述 JavaScript是一种专为与网页交互的脚本语言,由三部分组成. ECMAScript 核心,提供核心语言功能. BOM(浏览器对象模型) ...
- Javascript基础(二)
Javascript基础(二) 事件: 条件语句 类型转换 正则表达式regexp 错误抛出 void 事件: 是发生在HTML元素上的行为,可以是浏览器行为,可以是用户行为 a) html 元素添加 ...
- JavaScript基础学习 模拟京东查询快递单号
JavaScript基础学习 模拟京东查询快递单号 <!DOCTYPE html> <html lang="en"><head><meta ...
- JavaScript基础学习 动态生成表格
JavaScript基础学习 动态生成表格 根据我们拥有的数据来动态创建表格的行和列,以及实现删除行的操作 <!DOCTYPE html> <html lang="en&q ...
- web前端知识集合——javascript基础篇之javascript背景历史和运行环境(一)
前言:温故而知新,可以为长也!万变不离其宗,无论是现在web前端技术衍生出多么优秀,好用的框架,插件,都离不开这门语言的基础知识.掌握各种优秀的框架,插件,只是"善用工具的人",深 ...
- 【HTML③】JavaScript基础、使用JavaScript制作网页特效、使用前端库及UI框架快速开发
[HTML③]JavaScript基础.使用JavaScript制作网页特效.使用前端库及UI框架快速开发 八.JavaScript基础 1.JavaScript JavaScript简称JS是用于制 ...
- mysql用创建的用户登陆并修改表格_MySQL 基础学习二:创建一个用户表,并增删改查...
MySQL 基础学习二:创建一个用户表,并 增删改查 提示:MySQL 命令建议都用大写,因为小写运行时,还是翻译成大写的. 第一步,创建一个用户表 1,打开控制台,进入数据库 C:\Users\Ad ...
- 大数据基础学习二:在VMware虚拟机上安装Ubuntu完整步骤及需要注意的问题(以VMware Workstation 15.1.0 Pro和Ubuntu18.04.3优麒麟版为例)
大数据基础学习二:在VMware虚拟机上安装Ubuntu完整步骤及需要注意的问题 (以VMware Workstation 15.1.0 Pro for Windows和Ubuntu18.04.3优麒 ...
最新文章
- Python 基础 - Day 1 Assignment - Login 模拟登陆
- openSUSE-openOffice无法输入中文
- HP NIC Teaming技术探讨
- gridView删除提示框
- SWIFT4.0学习01 - 函数的命名、调用以及注意事项
- 创业公司的技术总监,去上市公司面试,结果凉了。
- [转]MTK android 下载及启动过程
- CentOS 7.0 关闭防火墙
- 零零散散的一些知识点(二)
- 巨人java生鲜app下载_Java生鲜电商平台-生鲜电商平台SSO(单点登陆)技术方案(小程序/APP)...
- 软件篇 之 Mac 安装 PS 19.1.8 并破解。。。
- Linux下的摄相头驱动
- 今天正式入职了字节跳动,分享点经验
- OptaPlanner快速开始
- Quartus II 11.0破解要点(与低版本的不同)
- vue+echarts+自适应 实现可视化大屏展示效果
- Linux 块设备之bio结构体
- win10系统访问局域网服务器,Win10系统不能访问局域网共享磁盘的解决方法
- DC系列:1 (DC-1靶机,初级渗透详细教程)
- Spring Boot+Vue(一)node.js环境搭建