认识JavaScript变量
变量的定义,规范等
一个变量,就是一个用于存放数值的容器;
这个数值可能是一个用于计算的数字,或者是一个句子中的字符串,或者其他任意的数据;
变量的独特之处在于它存放的数值是可以改变的
变量的命名规则
变量的声明:在JavaScript中声明一个变量使用var关键字(variable单词的缩写)(后续学习ES6还有let、const声明方式)
变量的赋值:使用=给变量进行赋值;
// 变量声明 var关键字
// var curentTime = "16:00";
// 其他写法一: 先声明后赋值
var curentTime;
curentTime = "16:02";
curentTime ="17:00";
// 其他写法二:同时声明多个变量
var name,age,height;
name= "webking";
age="21";
height="1.83cm";
// 方法二
var name="hdc",age=21,height=1.83;
命名规则
1.变量的第一个首字母必须以英文字母,_,$,开头
2.其他字符可以是字母,_,$,或者数字
3.不能用关键字和保留字命名:
https://developer.mozilla.org/zh-CN/docs/web/javascript/reference/lexical_grammar
4.严格区分大小写
建议遵守:
1.多个单词使用驼峰表示(小驼峰)
大驼峰:所有单词的首字母大写
小驼峰:一个单子首字母小写 剩下的所有单词首字母大写
var curentTime
2.推荐等号两边添加空格
var nameHdc = hdc;
3.一条语句结束后添加分号;
4.尽量见名知意
变量使用注意
// 注意事项一:如果一个变量未声明直接使用,会报错:04_JavaScript变量注意事项.html:12 Uncaught ReferenceError: age is not defined
// 注意事项二:如果一个变量有声明,但是没有赋值操作会提示:undefined
var age;
console.log(age)
// 注意事项三:在JavaScript中也可以不使用var全局声明一个变量
// 如果不适用var来声明一个变量,也是可以声明成功的,并且这个变量会被加入到window对象中
address="天津市";
console.log(address)
数据类型
JavaScript中的值都具有特定的类型
我们可以将值赋值给一个变量,那么这个变量就具备了特定的类型;
一个变量可以在前一刻是个字符串,下一刻就存储一个数字
允许这种操作的编程语言,例如JavaScript,被称为“动态类型”(dynamically typed)的编程语言
typeof(操作符)
因为ECMAScript 的类型系统是松散的,所以需要一种手段来确定任意变量的数据类型,typeof 操作符就是为此而生的。
<!--获取变量的数据类型-->
var info = "why";
info = 18;
info = {};
console,console.log( typeof info);
控制台输入:object
其他类型
对一个值使用typeof操作符会返回下列字符串之一:
"undefined"表示值未定义;
"boolean"表示值为布尔值;
"string"表示值为字符串;
"number"表示值为数值;
"object"表示值为对象(而不是函数)或 null;
!设置为null时返回的数据类型是object
"function"表示值为函数;
“symbol”表示值为符号
typeof()的用法:
你可能还会遇到另一种语法:typeof(x),它与 typeof x 相同;
typeof是一个操作符,并非是一个函数,()只是将后续的内容当做一个整体而已;
isNaN
用于判断是否不是一个数字。不是数字返回true,是数字返回false
console.log(isNaN(result))
返回结果为true和false
()的作用
第一:表示的是调用函数
第二:将某一个表达式当成一个整体
常见的数据类型
JavaScript 中有八种基本的数据类型(前七种为基本数据类型,也称为原始类型,而object 为复杂数据类型,也称为引用类型)。
number 用于任何类型的数字:整数或浮点数。
string 用于字符串:一个字符串可以包含0 个或多个字符,所以没有单独的单字符类型。
boolean 用于 true 和 false。
undefined 用于未初始化的值 ——只有一个undefined 值的独立类型。
object 用于更复杂的数据结构。
null 用于未知的值——只有一个null 值的独立类型。
◼ 后续学习的类型:
symbol 用于唯一的标识符。
bigint 用于任意长度的整数
Number类型
<script>
// number类型的基本使用
var age =18;
var height=1.88;
console.log(typeof age)
// 特殊数值
// 正无穷
var num1 = Infinity;
var num3 = 1/0;
// 负无穷
var num2 = -Infinity;
console.log(num1,num3,num2);
// NaN:not a number(得到的结果不是数字)
var result = 3 * "hahahaha"
console.log(result)
// 判断是不是NaN
console.log(isNaN(result))
// 3.进制的表示
var a = 100;//默认是10进制
var b = 0x100 //十六进制
console.log(b);//256
var c = 0o100;//八进制
console.log(c);
var d = 0b100;//二进制
console.log(d);
// 5.数字可以表示的范围
var max = Number.MAX_VALUE;
console.log(max);
var min = Number.MIN_VALUE;
console.log(min);
</script>
String类型
<script>
// string类型基本使用
var name = "webking";
var address = "天津市";
var intro = "认真是一种可怕的力量";
// 2.字符串别的引号的使用
// 单引号
var message1 = '哈哈哈哈哈哈';
// 双引号
var message2 = "喜喜喜喜喜喜";
// 反引号(es6里面新增的语法)
// 可以在字符串里拼接变量或者表达式---->${变量/表达式}
var message3 = `啦啦啦啦啦啦,${name},${2+3}`;
</script>
转义字符
转义字符 表示符号
\' 单引号
\" 双引号
\\ 反斜杠
\n 换行符
\r 回车符
\t 制表符
\b 退格符
字符串本身有的方法和属性
var message = "Hello World";
// 获取字符串长度
console.log(message.length)
// 字符串拼接
var nickname = "webking"
var info = "my name is "
// 方法一
var infoStr = `my name is ${nickname}`;(推荐)
// 方法二
var infoStr2 = info + nickname;
console.log(infoStr,infoStr2);
Boolean 布尔类型
Boolean 类型仅包含两个值:true 和false。
布尔(英语:Boolean)是计算机科学中的逻辑数据类型,以发明布尔代数的数学家乔治·布尔为名。
逻辑运算符中我们还会详细学习和使用Boolean类型;
Undefined类型
Undefined 类型只有一个值,就是特殊值undefined
这里有两个注意事项:
注意一:最好在变量定义的时候进行初始化,而不只是声明一个变量;
注意二:不要显示的将一个变量赋值为undefined
✓ 如果变量刚开始什么都没有,我们可以初始化为0、空字符串("")、null等值
Object 类型
Object 类型是一个特殊的类型,我们通常把它称为引用类型或者复杂类型;
其他的数据类型我们通常称之为“原始类型”,因为它们的值只包函一个单独的内容(字符串、数字或者其他);
Object往往可以表示一组数据,是其他数据的一个集合;
在JavaScript中我们可以使用 花括号{} 的方式来表示一个对象
例如:
var info={
name:"webking",
age:21,
height:1.88
}
初始化
// Object类型
var myInfo = {
name:"hdc",
age: 21 ,
sex: "男",
height: "1.88m"
};
console.log(myInfo);
// 2.拿到对象类型中的某一个属性
console.log( myInfo.name);
// 3.Null类型
// 3.1 其他类型的初始值
var age = 0;
var message = "";//空字符串
var isAdmin = false;
// 3.2如果对象类型初始化值为{}的时候在进行if条件判断的时候会默认转成boolean类型的true
// // 0,"",fales等原始数据类型在if语句里默认的值都默认转成boolean类型的fales;
var book = {};
if (book){
// alert("1")
document.write("123131");
}
// 当对一个对象类型进行初始化的时候不建议初始化值为{},建议初始化为null
// Null类型存在的意义就是对对象进行初始化的
var family = null;
if (family){
// alert("1")
document.write("123131");
}
null和undefined的区别
undefined通常只有在一个变量声明但是未初始化时,它的默认值是undefined才会用到;
并且我们不推荐直接给一个变量赋值为undefined,所以很少主动来使用;
null值非常常用,当一个变量准备保存一个对象,但是这个对象不确定时,我们可以先赋值为null;
数据类型的转换
比如把一个String类型的数字和另外一个Number类型的数字进行运算;
比如把一个String类型的文本和另外一个Number类型的数字进行相加;
比如把一个String类型或者Number类型的内容,当做一个Boolean类型来进行判断
大多数情况下,运算符和函数会自动将赋予它们的值转换为正确的类型,这是一种隐式转换;
我们也可以,通过显示的方式来对数据类型进行转换
字符串String的转换
其他类型经常需要转换成字符串类型,比如和字符串拼接在一起或者使用字符串中的方法
转换方法一:隐式转换
一个字符串和其他类型进行+操作:
如果+运算符左右两边有一个是字符串,那么另一个会自动转换成字符串类型进行拼接;
某些函数的执行也会自动将参数转化为字符串类型;
例如:console.log()函数
转换方法:
// 转换方式一:隐式转换
// 通过与空字符串:"" 相加利用隐式转换不会对内容进行影响 并且会转为String类型
var numStr = num1 + "";
var ageSrt = age + "";
var isAdminStr = isAdmin + "";
console.log(typeof numStr,typeof ageSrt,typeof isAdminStr)//string string string
// 转换方式二:显示转换
var num1Str2 = String(num1)
console.log(typeof num1Str2) //string
数字类型Number的转换
其他类型也可能会转成数字类型。
转换方法:
// 方法一:隐式转换(用的很少)
var num1 ="8";
var num2 ="4";
var result = num1 + num2;//84 加法时会转成字符串
console.log(result);
var result2 = num1 / num2;//2 当进行非加法运算时 会先将数据类型转换成数字类型 在进行计算
console.log(result2);
// 方法二:显式转换
var result3 = Number(num1);
其他类型转换成数字规则:
值 转换后的值
undefined NaN
null 0
true 和 false 1 and 0
string 去掉首尾空格后的纯数字字符串中含有的数字。如果剩余字符串为空,则转换结果为0。否则,将会从剩余字符串中“读取”数字。当类型转换出现error 时返回NaN。
布尔类型Boolean转换
它发生在逻辑运算中,但是也可以通过调用Boolean(value) 显式地进行转换
转换规则如下:
直观上为“空”的值(如0、空字符串、null、undefined 和NaN)将变为false。
其他值变成true
!注意:"0"这个转换成boolean类型时为true;