01-JavaScript的基础语法
1.计算机基础
1.1计算机组成
1.2数据存储(重要)
1.计算机内部使用二进制 0 和 1来表示数据。
2.硬盘、内存都是保存的二进制数据。
3.所有数据,包括文件、图片等最终都是以二进制数据(0 和 1)的形式存放在硬盘中的。
4.所有程序,包括操作系统,本质都是各种数据,也以二进制数据的形式存放在硬盘中。平时我们所说的安装软件,其实就是把程序文件复制到硬盘中。
1.3数据存储单位
大小关系:Bit < Byte < KB < MB < GB < TB <........
-
位(Bit): 1bit 可以保存一个 0 或者 1 (最小的存储单位)
-
字节(Byte):1B = 8b
-
千字节(KB):1KB = 1024B
-
兆字节(MB):1MB = 1024KB
-
吉字节(GB): 1GB = 1024MB
-
太字节(TB): 1TB = 1024GB
3.Javascript的特点
-
Javascript是一个脚本语言,可跨平台,支持面向对象。
-
脚本(Script)简单地说就是一条条的文本命令,按照程序流程执行。 常见的脚本语言:JavaScript、VBScript、Perl、PHP、Python等。 非脚本语言:C、C++、Java、C#等。
-
脚本语言与非脚本语言的区别: 非脚本语言一般需要编译、链接,生成独立的可执行文件后才能运行。 脚本语言依赖于解释器,只在被调用时自动进行解释或编译。
-
几乎所有的浏览器,包括手机等各类移动设备。 特点:JavaScript语言不依赖操作系统,仅需要浏览器的支持。
4.javascript的使用方式
例:
<!-- 1.内联JS -->
<a href="javascript:alert('点我干啥?');">点击一下</a>
<!-- 给当前的div注册一个单机事件 -->
<div title="123" onclick="alert('讨厌🤭')">你点完他就不要点我了</div>
<div title="123" onclick="console.log(123)">你点完他就不要点我了</div>
<!-- 2.创建一个script 标签 用来包裹js代码 -->
<script>
// alert警告框
alert('校服费4000元引争议 学校回应热');
// aaaa
</script>
<!-- 所以引入或者编写JS建议放在最下面 -->
<!-- 3.使用js script标签 的 src 引入外部JS -->
<script src="./01-JS的使用方式.js"></script>
5.变量
5.1定义变量
-
变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息,存放数据的容器。
-
语法:JavaScript中变量通常利用var关键字声明,并且变量名的命名规则与标识符相同。
-
要声明一个变量你需要首先使用关键字 var,然后输入任何你想要的名称,但是要符合标识符的命名规则:
-
命名规则:当标识符中需要多个单词进行表示时,常见的表示方式有下划线法(如user_name)、驼峰法(如userName)和帕斯卡法(如UserName)。读者可根据开发需求统一规范命名的方式,如下划线方式通常应用于变量的命名,驼峰法通常应用于函数名的命名等。
5.1.1变量的类型
1.基本数据类型:
undefined(未定义),null(空),string(字符串),number(数值),boolean(布尔),symbol
2.复杂数据类型:
object 对象
5.2如何使用变量
// 需要使用关键字 var var userName; // 当创建变量时会自动在内存中生成一个址 // 这样就声明了一个变量 // 用赋值运算符来给变量数据 // = 会将等号右边的值 赋给 = 左边的变量 userName = "天降大任于斯人也"; // 控制台输出 // 在访问时会自己去找址,从而拿到值 console.log(userName); // 简化 var userInfo = "先帝创业为伴,而半路华光预算"; console.log(userInfo); // 同时创建多个变量 var name, age, gender; name = "胡歌"; age = 18; gender = "男"; console.log(name); console.log(gender); console.log(age); // 扩展 console.log(100 + 9); console.log(100 - 9); console.log(100 * 9); console.log(100 / 9); console.log(100 % 9); console.log(20 % 5); console.log(10 % 3); console.log(2 * 2 * 2); console.log(2 ** 10);
5.3变量声明提升
变量被定义之后,你可以通过变量名称读取变量的值:
var myVariable = 'Hello JavaScript';
console.log(myVariable);
但是,在变量定义代码之前,通过变量名称读取变量的值,会出现什么情况呢:
console.log(myVariable); // undefined
var myVariable = 'Hello JavaScript';
由于变量的声明会被提升到当前作用域的最顶端,而赋值并不会被提升,因此上面的代码输出 undefined。可以使用下面的代码解释:
var myVariable;
console.log(myVariable); // undefined
myVariable = 'Hello JavaScript';
6.数据类型的转换
6.1 其他类型转成Boolean
使用 Boolean( ) 方法将其他类型的数据转换成 Boolean 类型。
下面这些值将被转换成 false
-
undefined
-
null
-
0
-
NaN(不是一个数值)
-
‘ ’
console.log(Boolean(952console.log(Boolean(undefined)); // false console.log(Boolean(null)); // false console.log(Boolean(0)); // false console.log(Boolean(NaN)); // false console.log(Boolean('')); // false7)); // true
6.2下面这些值将被转换成 true。
-
非空字符串
-
非零数字
-
对象
console.log(Boolean(9527)); // true console.log(Boolean({myname: 'xiaogu'})); // true console.log(Boolean('abcd')); // true
6.3 其他类型转成Number
1.使用 Number() 方法将其他类型的数据转换成 Number 类型
// 将数字类型的字符串,最后的结果保留原数据。
console.log(Number('123.456')); // 123.456
console.log(Number('789')); // 789
// 如果是非数字类型的字符串的话,直接转换成 NaN。
console.log(Number('abc')); // NaN
console.log(Number('123abc')); // NaN
console.log(Number('abc123')); // NaN
console.log(Number(null)); // 0
console.log(Number(true)); // 1
console.log(Number(false)); // 0
console.log(Number(undefined)); // NaN
console.log(Number({myName: '李四'})); // NaN
2.使用 parseInt() 方法将其他类型的数据转换成 Number 类型
//将数字类型的字符串通过该方法转换后,只保留数字的整数部分,不会进行四舍五入运算。
console.log(parseInt('123.456')); // 123
// 非数字类型的字符串转换后的结果为NaN。
console.log(parseInt('abc')); // NaN
console.log(parseInt('789')); // 789
// 以数字开始的字符串,保留数字部分忽略其他内容
console.log(parseInt('789abc')); // 789
// 以数字结尾的字符串,转换成 NaN
console.log(parseInt('abc789')); // NaN
// 将布尔值转换成 Number 类型
console.log(parseInt(true)); // NaN
console.log(parseInt(false)); // NaN
// undefined
console.log(parseInt(undefined)); // NaN
// null
console.log(parseInt(null)); // NaN
console.log(parseInt({name: '李四'})); // NaN
3.使用 parseFloat() 方法将其他类型的数据转换成 Number 类型
// 结果保留原数据,不会对数字进行四舍五入运算。
console.log(parseFloat('123.456')); // 123.456
console.log(parseFloat('abc')); // NaN
console.log(parseFloat('789')); // 789
// 如果在数字后加上非数字的字符,也可以转换成功
console.log(parseFloat('789abc')); // 789
console.log(parseFloat('abc789')); // NaN
// 将布尔值转换成 Number 类型
console.log(parseFloat(true)); // NaN
console.log(parseFloat(false)); // NaN
// undefined
console.log(parseFloat(undefined)); // NaN
// null
console.log(parseFloat(null)); // NaN
console.log(parseFloat({name: '李四'})); // NaN
6.4 其他类型转成String
1.使用 String() 方法将其他类型的数据转换成 String 类型。
String()函数可以将任意类型转换为字符型;
console.log(String(123.456)); // '123.456'
console.log(String(null)); // 'null'
console.log(String(true)); // 'true'
console.log(String({myName: '李四'})); // '[object Object]'
2.使用toString()将其他类型的数据转换成 String 类型。
除了null和undefined没有toString()方法外,其他数据类型都可以完成字符的转换。
var num = 10;
console.log(num.toString()); //10
console.log(num.toString(2)); //1010
console.log(num.toString(8)); //12
console.log(num.toString(16)); //a
6.5 隐式类型转换
1.利用隐式转换将字符串类型的数据转换成 Number 类型
// 当非数字类型的字符串相减时,结果都等于NaN
console.log('abc' - '18'); // NaN
// 当数字类型的字符串进行
// 减、乘、除、取余运算时,首先会将字符串转换成数字,然后再进行运算,最终的结果返回的是数值型。
console.log('28' - '18'); // 10
console.log('3' * '4'); // 12
console.log('32' / '4'); // 8
console.log('12' % '5'); // 2
2.使用方法时进行隐式类型转换
用于检查其参数是否是非数字值(isNaN() 函数)
console.log(isNaN(123)); //false
console.log(isNaN(-1.23)); //false
console.log(isNaN(5 - 2)); //false
console.log(isNaN(0)); //false
console.log(isNaN("Hello")); //true
console.log(isNaN("2005")); //false
3.利用隐式转换将其他类型的数据转换成 String类型。
console.log(12 + ''); // '12' 最终的结果返回的是字符型
console.log(12 + 3 + '4'); // '154'
console.log( '4'+ 12 + 3); // '4123'