1.变量的定义
隐藏试定义变量----->不需要写数据类型(js本身是一个弱类型)(c语言和java是强类型的语言)
javascript
a="123";//string a="123";
b=1;//int b=1;
c='a';//char c='a';
显示定义 使用var关键字来表述数据类型
javascript
var h="123";
var i='a';
var j=15.9;
数据类型表述数据在内存当中的存储形式
int:在内存当中开辟32bit大小内存空间 1bit符号位(表示正负)31bit数据位
char:在内存中开辟一个16bit的内存空间 字符本身无符号,所以就是一个16bit的空间
float:在内存当中开辟32bit大小内存空间 1bit符号位(表示正负) 8bit表示阶位(小数点的位 置)23bit数组位
强类型语言:需要提前定义好数据类型,以便直接存储数据
弱类型语言:不需要提前定义好数据类型,但是在存储数据之前需要根据数据的情况来判断数据的类型,以便开辟内存空间。
2.js的自动类型转换
javascript
var a="3.14";//字符串类型的数据
var b=a-2;//在js当中可以 这就是自自动类型转化(将字符串类型转化为数值类型)
var c="abc";
var d=c-2;
alert(b);//输出
alert(d);
说明字符串类型是数字的可以自动转换进行操作,字母的不可以。
3.强制类型转换
toString():将布尔值、数值转换为字符串
parseInt():将布尔值、字符串转换为整数
parseFloat():将布尔值、字符串转换为浮点型
javascript
var e=parseInt(a)-2;//输出1
alert(e+"\n"+b)

第一个是将var a="3.14"强制转换为a=3进行操作。
4.变量作用域
变量:全局变量和局部变量
局部变量:定义在方法当中的变量
全局变量的作用范围是全局
局部变量的作用范围只在方法当中
javascript
var a="全局变量";
function myfun(){
age=20;
var f="局部变量"
alert(a);
}
myfun();//调用方法
alert(a);
alert(f);
//当全局变量和局部变量重名时,在方法内部局部变量覆盖全局变量,在方法外部局部变量失效
var h="hello";
function test(){
var h="world";
alert(h);
}
test();
alert(h);
不显示h的输出,证明局部变量只能在方法中有效
当全局变量和局部变量重名时,在方法内部局部变量覆盖全局变量,在方法外部局部变量失效

5.变量提升
在方法当中定义的变量自动提升到方法的最顶部,但是值提升变量不提升值
javascript
var a=10;
function test(){
//var a;
console.log(a);//报错,说明没有进行变量提升
//a=20;
let a=20;
//var a=20;
console.log(a);
}
test();
var a=20; 变量自动提升到方法的最顶部,但是值提升变量不提升值

let a=20; 这种定义没有完成提升变量的操作

6.常量
javascript
const MAX_AEG=100;//正确的定义常量形式
MAX_AEG=101;//一旦定义好常量的值后,常量的值不能改变
var a=10;//变量时值能变化的量
a=11;
const MAX_HEIGHT;//不对,变量必须有初始值
常量:不变的量,约定:定义常量使用大写字母
7.js当中的基本数据类型
js当中的基本数据类型:数值类型(包含整数和浮点数)var/let 布尔型(表示true和flase)var/left 字符串类型 undefi类型:(表示创建好变量但是没有赋初始值)var a; null类型:变量值为null var a =null;
c语言当中的:整形:short int long 浮点型:float double 字符型:char;c语言当中没有布尔类型 0(表示flase)1(表示true)
数值类型 :整数 浮点数
javascript
var a=10;
var b=10/0;//0不能是除数
//js当中一个特殊的数字NaN(Not a Num)非数
var c=Number.NaN;
console.log(a);
console.log(b);//Infinity正无穷大
console.log(c);//+-*/ 整数/整数 /表示整除 浮点数/整数 /正常的 c语言当中
console.log(9/2);
console.log(9.2/2);

8.字符串
javascript
var text="sdafrawrafa3rat";
var a=text.charAt(0);//获得第一个字符!!!!重要
var b=text.charCodeAt(1);//获得第二个字符对应的unicode值
var c=text.length;//获取整个字符串的长度!!!!重要
var d=text.toUpperCase();//转化为大写
var f=text.indexOf("af");//寻找1字符串第一次出现的位置,如果没有就返回-1,如果有就返回位置!!!!
var g=text.indexOf("a",6);//跳过6个字符后,寻找1字符串第一次出现的位置,如果没有就返回-1,如果有就返回位置!!!!
var k=text.substring(3,6);//从原字符串中截取索引除3,4,5三个字符!!!!!
var r=text.slice(3,10);// 从3开始(包括该位置的字符到10结束(不包括该位置的字符)提取并返回这个范围内的子字符串!!!!!
var arr=text.split("a");//以a来把字符串分割成数组(一般以,或者空格来进行分割)
console.log(a);
console.log(b);
console.log(c);
console.log(d);
console.log(f);
console.log(g);
console.log(k);
console.log(r);
console.log(arr);
