因为疫情原因,第一个不放假的五一,学习也渐渐没了兴趣

初识JavaScript

运行在客户端的脚本语言

浏览器执行js简介
  • 渲染引擎:解析html和css,俗称内核
  • js引擎:js解释器,读取网页中的javascript代码,逐行解释
JS组成
  • ECMAScript:JavaScript语法
  • DOM:页面文档对象模型
  • BOM:浏览器对象模型
JS初体验

JavaScript三种书写方式

<!-- 1. 行内式的js 直接写到元素的内部 -->
    <input type="button" value="JavaScript" onclick="alert('行内式')">	
<!-- 2.内嵌式的js -->
    <script>
        alert('内嵌式');
    </script>
    <!-- 3. 外部js script 双标签 -->
    <script src="外部.js"></script>
输入输出
方法 说明 归属
alert(msg) 浏览器弹出警示框 浏览器
console.log(msg) 浏览器控制台打印输出信息 浏览器
prompt(info) 浏览器弹出输入框,用户可以输入 浏览器

变量

存放数据的容器,通过变量名获取数据,可以修改

程序在内存中申请的一块用来存放数据的空间

变量使用
声明变量

var 变量名 ;

  • var 是一个JS关键字,用来声明变量(variable,变量),自动分配内存空间
赋值

变量名 = 0

数据类型

JavaScript是弱类型语言或者说是动态语言;

变量的数据类型由js引擎根据变量值的数据类型自动判断

  • 简单数据类型:Number , String , Boolean , Undefined , Null
  • 复杂数据类型:Object
数字类型
var num = 10; // num 数字型 
var PI = 3.14 // PI 数字型
    // 1. 八进制  0 ~ 7  我们程序里面数字前面加0 表示八进制
var num1 = 010;
console.log(num1); //  010  八进制 转换为 10进制 就是  8 
var num2 = 012;
console.log(num2);
// 2. 十六进制  0 ~ 9  a ~ f    #ffffff  数字的前面加 0x 表示十六进制
var num3 = 0x9;
console.log(num3);
var num4 = 0xa;
console.log(num4);
// 3. 数字型的最大值
console.log(Number.MAX_VALUE);
// 4. 数字型的最小值
console.log(Number.MIN_VALUE);
// 5. 无穷大
console.log(Number.MAX_VALUE * 2); // Infinity 无穷大  
// 6. 无穷小
console.log(-Number.MAX_VALUE * 2); // -Infinity 无穷大
// 7. 非数字
console.log('JavaScript' - 100); // NaN
// isNaN() 这个方法用来判断非数字   并且返回一个值 如果是数字返回的是 false 如果不是数字返回的是true
console.log(isNaN(12)); // false
console.log(isNaN('JavaScript')); // true
字符串型
  • 引号
  • 字符串转义字符 都是用 \ 开头 但是这些转义字符嵌套在引号里面
// 1. 检测获取字符串的长度 length 
var str = 'my name is andy';
console.log(str.length); // 15
// 2. 字符串的拼接 +  只要有字符串和其他类型相拼接 最终的结果是字符串类型
console.log('沙漠' + '骆驼'); // 字符串的 沙漠骆驼
console.log('晗涩LV' + 18); // '晗涩LV18'
console.log('handsomelv' + true); // handsomelvtrue
console.log(12 + 12); // 24
console.log('12' + 12); // '1212'
布尔型

Boolean(NaN) 布尔类型转换

  • true 参与加法运算当1来看
  • false 参与加法运算当 0来看
  • 如果一个变量声明未赋值 就是 undefined 未定义数据类型
  • 字符串+ 任意类型 等于 字符串
  • undefined 和数字相加 最后的结果是 NaN

typeof 返回数据类型

  • prompt 取过来的值是 字符型的
数据类型转换
转换为字符串
// 1. 把数字型转换为字符串型 变量.toString()
var num = 10;
var str = num.toString();
console.log(str);
console.log(typeof str);
// 2. 我们利用 String(变量)   
console.log(String(num));
// 3. 利用 + 拼接字符串的方法实现转换效果 隐式转换
console.log(num + '');
// 1. parseInt(变量)  可以把 字符型的转换为数字型 得到是整数
// console.log(parseInt(age));
console.log(parseInt('3.14')); // 3 取整
console.log(parseInt('3.94')); // 3 取整
console.log(parseInt('120px')); // 120 会去到这个px单位
console.log(parseInt('rem120px')); // NaN
// 2. parseFloat(变量) 可以把 字符型的转换为数字型 得到是小数 浮点数
console.log(parseFloat('3.14')); // 3.14
console.log(parseFloat('120px')); // 120 会去掉这个px单位
console.log(parseFloat('rem120px')); // NaN
// 3. 利用 Number(变量) 
var str = '123';
console.log(Number(str));
console.log(Number('12'));
// 4. 利用了算数运算 -  *  /  隐式转换
console.log('12' - 0); // 12
console.log('123' - '120');
console.log('123' * 1);