``` java script
<script>
//.1在控制台输出内容,控制台的目标(前端调试,用完删除)
//编写完成代码后,live serve 中文包 PATH插件
console.log("hello world");
//2.页面出输出,CTRL+B折叠左边的菜单
document.write("<div style='color:red'>你好</div>");
//3.在提示框输出(不推荐使用,会造成堵塞,按下确定后才能执行后面的d代码)
alert("你好呀");
//二。页面的简单渲染过程
//打开页面,页面的标签和css进行解析
//在解析 html标签的过程中,如果解析的过程中遇到了JS,将暂停html的渲染;
//执行js,js的阻塞,js没有执行完,后面的html、css都不执行
//核心原因:js是单线程
//正是因为js的属性,就推出了两个属性
//async 等页面加载完,异步执行,哪个js加载完先执行谁
//defer 等页面加载完,按照js在文件的顺序执行
</script>
<script type="text/javascript">
//1.如果script上面有src,将不会执行script内部的代码,而是会执行外部引用的代码
//2.script的type默认是text/javascript,可以不写,要写就要写对一字不少
//3.注释
//3.1 单行注释//快捷键 ctrl+/
//3.2 多行注释 /**xxx**/ 快捷键更改为 ctrl+shift+/ 方便记忆
//4.变量 variable 可变的量
// var myname = "刘德华";//alt shift f 格式化代码
// console.log(myname);//在控制台显示刘德华
// //声明变量,必须使用 var关键字
// var age;//没有赋值,它的默认值undefined
// console.log(age);
// age = 20;//把20赋值到age,把右边的值,赋值给左边;
// console.log(age);
// //推荐写法,声明变量并赋予初始值
// console.log("name");//name是window对象上的默认属性,不建议使用name
//单个声明变量
// var myname="先后加尔鲁米诺";
// var age=42;
// var address="中国";
//console
//当声明多个变量时,可以使用一个var;
// var myname = "周杰伦", age = 42, address = "弯弯";
// console.log(myname,age);
//变量声明的细节
//1. 声明变量,必须使用var关键字
//2.声明变量,未赋值的默认初始值 undefined
// 3.建议声明变量,并赋予初始值
// 4.声明变量后的值,可以随时随意被修改
//变量命名规则
//1.只能是数字,字母。下划线_,$;
// 2.不能以数字开头
// 3.不能是保留字,关键字
// 4.严格区分大小写
// 5.遵循驼峰命名法
// 1)小驼峰 变量,实例对象
// 2)大驼峰 类 构造函数
// 6语义化();
//什么是程序
// 一群有序的指令
// var myname = "刘德华";//首字母小写,小驼峰
// var Myname = "蔡依林";//首字母大写,大驼峰
// 1.什么是js
// 与网页进行交换的脚本语言
// 2.js的`1组成部分?
// 1.ECMAscript (ECMA 欧洲计算机制造)
// 2 BOM (Browser Object Model)
// 3 DOM(Document Object Model)
// 3js变量
// 1.申明变量必须使用vaer关键字
// 2.变量的默认值是undefined
// 3变量的值可以随意被修改(js弱类型语言)
// 4声明多个变量,可以使用 , 隔开
//变量命名规则
//1.只能是数字,字母。下划线_,$;
// 2.不能以数字开头
// 3.不能是保留字,关键字
// 4.严格区分大小写
// 5.遵循驼峰命名法
// 1)小驼峰 变量,实例对象
// 2)大驼峰 类 构造函数
// 6语义化();
// 5.js的数据类型
// js在ECMA5之前,只有6大数据类型
// 1. 数值类型(Number)
// 2.字符串类型(String)一组双引号或者单引号
// 3.布尔类型(Boolean) 它的值只有2个 true/flase(真/假)
// 4.null 空地址
// 5undefined 未定义类型
// 6.Object 类型
// 把溜达数据类型分成2类
// 1.值类型(Number,String,Boolean,Undefined,Null);
// 2.引用类型(Object:Array,Function,Date...)
// 6.js类型转换
// String: 非空字符串为true, 空字符串为false
// Number: 非0数值为true, 0或者NaN为false
// Object: 对象不为null则为true, null为false
// Undefined : undefined为false
</script>
<script>
//如果监测基本数据类型,使用typeof
//1.Number 数字类型
var money=100;
console.log(money);
//写法1
var res1=typeof money;
console.log(res1);
//写法2
var res2=typeof(money);
console.log(res2);
//2.字符串类型 由一组双引号或者单引号
var myName="著结论";
console.log(typeof str);
//3.布尔类型 Boolean
var flag=true;//真
console.log(flag);
console.log(typeof (flag));//boolean;
//4.undefined 未定义,声明变量未赋值初始值
// 5 null空地址
console.log(null==null);
// 6.object 对象类型
var obj={name:"刘德华"};
console.log(obj);
// 创建了一个空盒子
var obj=new Object()
obj.age=100;
console.log(obj);
var num=100;
console.log(typeof typeof(num) );
// "Number"
console.log(typeof "Number");
// 两个以上的typeof 打印出来的是String类型
</script>
<script>
//转数值
// Int 数值
// float 浮点类型
// string-->数值
var str = "你哈";
console.log(Number(str));
// NaN
console.log(parseInt(str));
// NaN
console.log(parseFloat(str));
// NaN
// Number转空字符串为0
var str = "";
console.log(Number(str));
// 0
console.log(parseInt(str));
// NaN
console.log(parseFloat(str));
// NaN
var str = "12.3";
console.log(Number(str));
// 0
console.log(parseInt(str));
// NaN
console.log(parseFloat(str));
// NaN
// bool---->数值
// true 为1
// false 为0
var flag = "true";
console.log(Number(flag));
// 1
console.log(parseInt(s = flag));
// NaN
console.log(parseFloat(flag));
// NaN
// null和undefined--->数值
var flag = "null";
console.log(Number(flag));
// 0
console.log(parseInt(s = flag));
// NaN
console.log(parseFloat(flag));
// NaN
var flag = "undefined";
console.log(Number(flag));
// NaN
console.log(parseInt(s = flag));
// NaN
console.log(parseFloat(flag));
// NaN
// parseInt和parseFloat,在字符串里能转换
//必须以数值开头,
var str = "100px";
console.log(parseInt(str));
console.log(parseFloat(str));
// Math
// Math.round 四舍五入
console.log(Math.round(78.566));
// 79
// +
var n = 100;
var m = 200;
var result = n + m;
console.log(result);
// -
var n = 100;
var m = 200;
var result = n - m;
console.log(result); // = 把右边的值,赋予到左边
// *
// ** 5**6表示5的6次方
var n=10;
var m=20;
var result= n*m;
console.log(result);
// /
var n=10;
var m=20;
var result= n/m;
console.log(result);
// % 余数 mod 可以用来设置取值范围
// 取3的模,值为 0 1 2
// 取5的值模的取值范围为 0 1 2 3 4
var n=10;
var m=20;
var result= n%m;
console.log(result);
</script>
```