前端学习 JavaScript

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);
相关推荐
ooo-p3 小时前
FPGA学习篇——Verilog学习之计数器的实现
学习·fpga开发
Jagger_3 小时前
Cursor + Apifox MCP:告别手动复制接口,AI 助你高效完成接口文档开发
前端
A9better3 小时前
嵌入式开发学习日志37——stm32之USART
stm32·嵌入式硬件·学习
zhangrelay3 小时前
ROS云课三分钟-使用动态参数重配置调试Teb导航案例-251008
笔记·学习
IT_陈寒3 小时前
Redis性能优化:5个被低估的配置项让你的QPS提升50%
前端·人工智能·后端
Hilaku3 小时前
重新思考CSS Reset:normalize.css vs reset.css vs remedy.css,在2025年该如何选?
前端·css·代码规范
袁煦丞4 小时前
一图看懂Docker管理 Portainer:cpoar内网穿透实验室第652个成功挑战
前端·程序员·远程工作
生物小卡拉4 小时前
R脚本——Deseq2差异表达分析--v1.0
windows·经验分享·笔记·学习·信息可视化·数据分析
livana.4 小时前
小学scrach入门项目学习幸运大转盘项目
经验分享·学习·其他·scratch