1..JavaScript是什么
* 是一门弱类型本语言
* 是一门脚本语言
* 是一门解释性语言
* 是一门动态类型的语言
* 是一门基于对象的语言
html和css也是语言但是不属于编程语言是一种标记语言
js也是一种语言 一种开发语言 不是真正的编程语言
编译语言:需要把代码翻译成计算机所认知的二进制语言,才能执行
脚本语言:不需要编译 ,直接执行
2.js书写位置
1.(写在行内)html文件中,script的标签中写代码
<head>
<script>
alart('Hello World');
<script>
</head>
2.(写在script标签中)可以在html的标签中写
举例<input type="button" value="按钮" onclick="alert('点了')";>
3.(写在外部js文件中,在页面引入)外部js文件引入
<script src="main.js"></ script>
引用外部js文件的script标签中不可以写JavaScript代码!
外部引入js文件通常放在body中!理论上放哪都可以
注意tips
1.在一对script的标签中有错误的代码,那么该错误代码后面的js代码不会执行
2.如果第一对的script标签中有错误,不会影响到后面的script标签中的js代码执行
3.script标签可以在页面中出现多次
4.变量
1.什么是变量
变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据
2.变量作用
获取或者修改内存中的数据
3.如何使用变量
var 变量名;
注意规范 :
js中声明都用var
js中的每一行代码都应该有结束分号;
js中的大小写是区分的: var N=10;n
js的字符串通常使用双引号
变量名的注意问题:
1.变量名要有意义
2.规范一般以字母,$符号,下划线开头,中间可以有¥符号,字母,数字
3.变量名一般小写(除非国际认可如NBA)
4.变量名如果是多个单词,第一个单词的首字母要是小写的,后面所有的单词的首字母 都要大写,也叫做:驼峰命名法
5.不能使用关键字eg:var for break
举例:var bigNumber=10;
同时声明多个变量:
var age, name, sex;
age = 10;
name = 'zs';
同时声明多个变量并赋值
var age = 10, name = 'zs';
4.变量的交换
第一种思路:使用第三方变量进行交换;
var num1 =10;
var num2 =20;
var temp =num1;
num1=num2;
num2=temp;
console.log(num1);
console.log(num2);
第二种思路:一般使用于数字交换
var num1 =10;
var num2 =20;
num1=num1+num2;
num2=num1-num2;
num1=num1-num2;
console.log(num1,num2);
第三种思路):
var num1 = 10;
var num2 = 20;
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;
console.log(num1, num2);
5.注释
//单行注释:一般用在一行代码的上面
/*多行注释:一般是用在函数或者是一段代码的上面*/
6.数据类型
1.* number:数字类型(整数和小数)
* string:字符串类型(的值一般都是用单引号或者是双引号括起来) "34"
* boolean:布尔类型(值只有两个,true(真1),false(假0))
* null:空类型,值只有一个:null,一个对象指向为空了,此时可以赋值为null
* undefined:未定义,值只有一个:undefined
* 什么情况下的结果是undefined
* 变量声明了,没有赋值,结果是undefined
* 函数没有明确返回值,如果接收了,结果也是undefined
* 如果一个变量的结果是undefined和一个数字进行计算,结果:NaN不是一个数字,也没有意义
* object:对象---->
2.如何获取数据类型:
typeof
举例:
var num = 10;
var str = "小白";
var flag = true;
var nll = null;
var undef;
var obj = new Object();
是使用typeof 获取变量的类型
console.log(typeof num);//number
console.log(typeof str);//string
console.log(typeof flag);//boolean
console.log(String(nll));//是null
console.log(typeof nll);//不是null
console.log(typeof undef);//undefined
console.log(typeof obj);//object
console.log(typeof(num));
3.* 无论是整数还是小数都是数字类型
* 不要用小数验证小数
* 不要使用NaN判断是不是Na N,应该使用isNaN(值或者是变量)
* 想要表示十进制:就是正常的数字
* 想要表示八进制:以0开头
* 想要表示十六进制:0x开头
1.数字类型:number类型
* 无论是整数还是小数都是数字类型
* 不要用小数验证小数
* 不要使用NaN判断是不是NaN,应该使用isNaN(值或者是变量)
* 想要表示十进制:就是正常的数字
* 想要表示八进制:以0开头
* 想要表示十六进制:0x开头
不要用小数去验证小数.
var x=0.1;
var y=0.2;
var sum=x+y;
console.log(sum==0.3);
浮点数
var n = 5e-324; // 科学计数法 5乘以10的-324次方
浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数
var result = 0.1 + 0.2; // 结果不是 0.3,而是:0.30000000000000004
console.log(0.07 * 100);
不要判断两个浮点数是否相等
数值判断
- NaN:not a number
- NaN 与任何值都不相等,包括他本身
- isNaN: is not a number
2.字符串类型:string类型
var str="10";//字符串
var str2='20';//字符串
可以是单引号,也可以是双引号
字符串的长度如何获取? 变量名.length
console.log(str.length);
举例
var str1="fdshfjworwoijpfskj;akjfpojfiwnmoiwajdoiwajiwaewowj";
console.log(str1.length);
转译符
字符串拼接
使用+可以把多个字符串放在一起形成一个字符串
只要有一个是字符串,其他的是数字,那么结果也是拼接,不是相加
如果有一个是字符串,另一个不是字符串,使用- 号,此时会发生计算
var str1="您好";
var str2="我好";
console.log(str1+str2);
console.log("哈哈"+"嘎嘎"+"嘿嘿");
var str1="10";
var str2="20";
console.log(str1+str2);
var str1="10";
var str2=20;
console.log(str1+str2);
var str1 = "10";
var str2 = 5;
隐式转换
console.log(str1-str2);
var str1="10";
var str2=5;
console.log(str1*str2);
3.布尔类型:boolean类型
值有两个,一个是true(真),一个是false(假) 区分大小写
计算机内部存储:true为1,false为0
#### Undefined和Null
4. undefined
表示一个声明了没有赋值的变量,变量只声明的时候值默认是undefined
5. null
表示一个空,变量的值如果想为null,必须手动设置
6.数据类型转换
1./其他类型转数字类型:三种方式:
1.parseInt();//转整数
console.log(parseInt("10"));//10
console.log(parseInt("10afrswfdsf"));//10
console.log(parseInt("g10"));//NaN
console.log(parseInt("1fds0"));//1
console.log(parseInt("10.98"));//10
console.log(parseInt("10.98fdsfd"));//10
2.parseFloat()//转小数
console.log(parseFloat("10"));//10
console.log(parseFloat("10afrswfdsf"));//10
console.log(parseFloat("g10"));//NaN
console.log(parseFloat("1fds0"));//1
console.log(parseFloat("10.98"));//10.98
console.log(parseFloat("10.98fdsfd"));//10.98
3.Number();//转数字
console.log(Number("10"));//10
console.log(Number("10afrswfdsf"));//NaN
console.log(Number("g10"));//NaN
console.log(Number("1fds0"));//NaN
console.log(Number("10.98"));//10.98
console.log(Number("10.98fdsfd"));//NaN
总结:想要转整数用parseInt(),想要转小数用parseFloat()
想要转数字:Number();要比上面的两种方式严格
其他类型转字符串类型
1 .toString()
var num=10;
console.log(num.toString());//字符串类型
2 String();
var num1=20;
console.log(String(num1));
如果变量有意义调用.toString()使用转换
如果变量没有意义使用String()转换
var num2;
console.log(num2.toString());
var num3=null;
console.log(num3.toString());
这个可以
var num2;
console.log(String(num2));
var num3=null;
console.log(String(num3));
其他类型转布尔类型
1 Boolean(值);
console.log(Boolean(1));//true
console.log(Boolean(0));//false
console.log(Boolean(11));//true
console.log(Boolean(-10));//true
console.log(Boolean("哈哈"));//true
console.log(Boolean(""));//false
console.log(Boolean(null));//false
console.log(Boolean(undefined));//false
var str=10;
console.log(+str);