/**********************************************************************
** author : Bugliu
** date : 2018-12-03
** description : 基本语法+数据类型+变量
** 学习网站 : www.liaoxuefeng.com
**********************************************************************/
// 《基本语法》
/*
每个语句以;结束,,语句块用{...}。但是,JavaScript并不强制要求在每个语句的结尾加;,
浏览器中负责执行JavaScript代码的引擎会自动在每个语句的结尾补上;。
让JavaScript引擎自动加分号在某些情况下会改变程序的语义,导致运行结果与期望不一致。
*/
// 完整的赋值语句
var x = 1;
var x = 1; var y = 2; // 一行可以写多个语句,但不建议
// 字符串
'hello world';
// “//” 注释单行 "/*...*/" 注释多行
// JavaScript严格区分大小写,如果弄错了大小写,程序将报错或者运行不正常。
// 《数据类型》
/*
JavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型
*/
123; //整数 123
0.456; //浮点数0.456
1.2345e3; //科学计数法标识1.2345*1000,等同于1234.5
-99; //负数
NaN; //NaN表示Not a Number, 当无法计算结果时用NaN 表示。
Infinity; //Infinity 表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity
0xff; //十六进制
//字符串 单引号 双引号均可
’hello';
"world";
//布尔值 true, false
true;
false;
//与 “&&”,或“||”,非“!”
//运算符
false == 0; // true
false === 0; //false
//第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;
//第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较
//由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。
//NaN这个特殊的Number与所有其他值都不相等,包括它自己
NaN === NaN; //false
// 判断NaN的方法
isNaN(NaN); //true
// 浮点数比较
1/3 === (1-2/3) // false
// 浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等,
// 只能计算它们之差的绝对值,看是否小于某个阈值
Math.abs(1/3 - (1-2/3)) < 0.0000001; //true
// null表示空,undefined表示未定义,大多数用null, undefined仅在判断函数参数是否传递的情况下有用。
// 数组可包含任意类型元素
var arr = [1, 2, 3.14, 'hello', null, truej ];
arr[0]; // 返回索引为0的元素,即1
new Array(1, 2, 3); // 创建数据[1,2,3] 不建议使用
// js的对象是一组键-值组成的无序集合
var persion = {
name: 'bob',
age: 20,
tags: ['js', 'c', 'c++']
code: null
};
//获取对象的属性
persion.name; // bob
persion.age; // 20
// 变量名是大小写英文、数字、$和_的组合,且不能用数字开头。变量名也不能是JS的关键字,
// 如if、while等。申明一个变量用var语句.
// 变量名可以用中文,但最好禁止使用
var a = 100;
var $B = 1;
var s_007 = '007';
var Answer = true;
var t = null;
// 显示变量内容
console.log(s_007); // 007
alert(a); // 100
// 使用console.log()代替alert()的好处是可以避免弹出烦人的对话框
// strict 模式
/*
如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量:
在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明
变量就使用的,将导致运行错误.
启用strict模式的方法是在JavaScript代码的第一行写上:'use strict';
不支持strict模式的浏览器会把它当做一个字符串语句执行,支持strict模式的浏
览器将开启strict模式运行JavaScript
如果浏览器支持strict模式,且定义变量var,则会报错“ReferenceError”.
*/
11-06
11-06
11-06