JS 变量数据类型 条件语句 作用域

本文深入浅出地介绍了JavaScript的基本概念,包括其作为动态脚本语言的特点、变量声明、数据类型(如undefined、null、基本类型和引用类型)、运算符、条件语句、循环、函数、作用域以及一些关键概念如==和===、数值特殊值NaN和Infinity。
摘要由CSDN通过智能技术生成

JavaScript

基于对象的动态脚本语言  不需要编译

什么是JavaScript?
    JavaScript是一种轻量级、弱类型数据的编程语言,简称JS

不仅可以创造对象也可以使用现有的对象

具有跨平台性 只要有js引擎就可以运行 一般浏览器都自带js引擎

嵌入式  html+css+javascript+dom

三个主要组成部分:

1.ECMAScript(核心)

2.DOM(文档对象模型)

3.BOM(浏览器对象模型)

在一个html页面中,javaScript代码可以写在script标签中。script标签可以在任何位置

如何编写JS代码,声明js有几种方式?
    1.内部声明:
     通过<script>标签声明js代码,这个标签可以写在title下,body中,body下
     具体使用情况看业务需求
   2.外部声明
    新建js文件,在js文件中书写js代码,不需要<script>标签在html页面里使用<script>
    标签中的src属性引入该js文件,如果想引入多个js文件,写多个js标签即可

<script type="text/javascript">

		let num

	</script>

js定义变量

 定义变量可使用let var关键字
最新规范推荐使用let

        <script type="text/javascript">
		//定义变量可使用let 或 var关键字
		//最新规范推荐使用let
		let num
		//赋值 使用 = 
		num = 10 
		console.log(num);

js中的数据类型

  1. undefined-未定义类型:未被赋值的变量,值为undefined
  2. boolean-布尔类型:值为true/false
  3. number-数字类型:任何数字(NaN也是number类型,表示“非数”)
  4. string-字符串类型:值用引号(单引号或者双引号)括起来
  5. object-对象类型:null、数组、Date等
  6. function-函数类型:function函数

娇姐:(

基本数据类型
     number:string boolean null undefined
     number:数字类型(小数,整数,无穷大和非数字)
      无穷大:var a=10/0;
      非数字:用来辨识本来返回一个数值但实际并未返回数值的操作
     string:字符串(单引号,双引号都行)
     boolean:布尔类型(两个值分别是true,false)
     null:空类型(他的值就是null,typeof判断出来的类型object)
     undefined:未定义的类型 var a;中的a

 引用数据类型
     object 除了基本数据类型而外都是引用数据类型

null和undefined的区别(面试题)
     null:空值,表示一个变量将来可能指向一个对象
     undefined:从未被赋值,将来是否赋值不清楚

     ①null类型,代表空值,代表一个空对象指针,使用typeof运算得到object,所以你可以认为他是一个特殊的值
     ②undefined类型,当一个声明了一个变量未初始化时,得到的就是undefined;
     ③undefined是访问一个未初始化的变量时返回的值,而null是访问一个尚未存在的对象时所返回的值
     因此,可以把undefined看作是空的变量,而null看作是空的对象

可使用typeof获取变量数据类型

        let num;   
		console.log(typeof num)       //返回undefined
		num = 10;
		console.log(typeof num)       //返回number
		num = 'abc';
		console.log(typeof num)       //返回string
		num = true;
		console.log(typeof num)       //返回boolean
		function getDate(){}
		console.log(typeof getDate)   //返回function
		num = [];
		console.log(typeof num)       //返回object
		num = new Date();
		console.log(typeof num)       //返回object
		num = null;
		console.log(typeof num)       //返回object

NaN、Infinity

NaN,即非数值(Not a Number)是一个特殊的值

NaN和任何数据进行运算结果仍然是NaN。想要判断一个变量是不是NaN时,要使用isNaN()函数

parseInt函数 数据类型不是数据时 返回NaN 

		console.log(isNaN('5'));      //isNaN函数 数据类型是数据时 返回false
		console.log(isNaN('abc'));    //isNaN函数 数据类型不是数据时 返回true
        console.log(parseInt('111'));
		console.log(parseInt('abc')); //parseInt函数 数据类型不是数据时 返回NaN

Infinity 即无穷,是一个特殊的值

        console.log(10/0);            //任何一个数除以0  会返回Infinity

js中的运算符

js是弱类型语言

js中数字类型的数据不区分整数和小数

js运行中会隐式转换数据类型 把字符串类型隐性转变为数字类型

            let num1,num2
			num1 = '10'
			num2 = '5'
			console.log(num1*num2);//返回结果为50

== 和 === 的区别

== 只比较数值 会印象转换数据类型然后在比较数值

=== 比较数值和类型 不会转换数据类型 更加严格

            console.log(10=='10');//返回结果为true
			console.log(10==='10');//返回结果为false

字符串如何转换成数字
        Parsefloat():将字符串转换为小数
        ParseInt():将字符串转换为整数 向下取整
        Number():将字符串装换为数字​​​​​​​

            let s1,s2
			s1 = '10'
			s2 = '10.5'
			s1 = parseInt(s1)//强制转换数据类型 parseInt强制转换为整数
			s2 = parseFloat(s2)//强制转换数据类型 parseFloat强制转换为小数
			console.log(s1+s2);//返回结果为20.5 因为+还有连接符的意思 所以需要强制转换为整数和小数类型运算

js流程控制语句

条件语句

1. if

        let score = 59
		
		//if小括号中的条件语句 执行结果必须是布尔类型
		if(score>=60){
			console.log('可以了 圆满了 可以要钱了');
		}else{
			console.log('挂科了 猩猩的哥哥 狒狒');
		}//输出结果为 挂科了 猩猩的哥哥 狒狒

2. if else 

        let score = 71
		if(score>=90){
			console.log('优秀');
		}else if(score>=80 && score<90){
			console.log('良好');
		}else if(score>=60 && score<80){
			console.log('中等');
		}else{
			console.log('不及格');
		}
        //输出结果为 中等

3.switch语句

        let level = 1
		//switch()里的代码 执行结果是整数或者字符
		switch(level){
			
			case 1:
				console.log('第一名');
				break;
			case 2:
				console.log('第二名');
				break;
			case 3:
				console.log('第三名');
				break;
			default:
				console.log('不重要了');
		}
        //返回结果为 第一名

循环语句

1. while语句

        let i = 0
		//while()代码的执行结果 是布尔类型
		while(i<5){
			console.log(i);
			i++;
		}
        //返回结果为 0 1 2 3 4

2.do while语句

先执行再判断

        let num = 123456
		
		do{
			console.log(num%10);
			num=Math.trunc(num/10);//Math.trunc取整数部分
		}while(num!=0);
//输出结果为 6 5 4 3 2 1 
		

3.for 语句

	for(let i= 0;i<5;i++){
			console.log(i);
		}
		//返回结果为0 1 2 3 4 

函数定义以及调用

第一种方式: function 函数名( ){ //函数体; }

        //定义函数
		//1.
		function f1(){
			console.log('第一种函数定义方式');
		}	
		//函数调用
		//函数中的代码只有在被调用时才会执行
		f1();

第二种方式: let 函数名 = function(){ //函数体; }

        let f2 = function(){
			console.log('第二种函数定义方式');
		}
		f2();

函数的参数与返回值

        function add(n1,n2){
			return n1+n2;
		}
		//调用有参函数时 需要传递参数
		//返回值需要定义一个变量用来接收返回值
		let r = add(1.1,2.2);
		console.log(r);//结果为3.3

作用域

使用var定义的变量作用域 只有函数级没有块级(可以在{}里面的变量可以在{}外面使用)

{}叫做块级代码

let 定义的变量 既有函数级又有块级(只能在当前{}里和当前函数里面使用)

ES5之后 官方推荐使用let关键字定义变量

        //使用var定义的变量作用域 只有函数级没有块级
		//{}叫做块级代码
		{
			var v1 = 10;
			//尽管在{}里 但是{}外也能用 叫做没有块级
		}
		console.log(v1);//返回结果为10
		
		function f1(){
			var v2 = 20;
			//只能在函数里面用 函数外面不能用 叫做有函数级
		}
		 console.log(v2);//报错
		//let 定义的变量 既有函数级又有块级
		{
			let s1 = 10;
		}
		console.log(s1);//报错
		//ES5之后 官方推荐使用let关键字定义变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值