JavaScript基础篇上(变量,数据类型,操作符,流程控制)

本文全面介绍了JavaScript的基础知识,包括JS的书写位置、注释使用、变量定义与命名规范、语言特性,详细解析了数据类型(简单数据类型、字符串、布尔、undefined、null),以及运算符、流程控制等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.JavaScript

1.JavaScript的书写位置

-(1) 内嵌式js写法

  •  在head里写<script></script>
    

-(2)行内式js写法—不推荐使用,不利于html和js的分离

  •  <!-- <a href="javascript:alert(400);">这是a标签</a> -->
    
  •  使用javascript伪协议    <a href="javascript:;">这是a标签</a>
    

-(3) 外链试js写法—推荐使用

  •  <!-- <script src="tool.js"></script> -->
    

2.注释的使用

  • 单行注释: //
  • 多行注释: /**/

3.变量的使用

(1) 变量是用于存储数据的容器
(2).作用:用于存储数据,让数据可以复用
(3) 变量的使用方式:

  •  .1:变量的声明方式:变量必须声明后再使用
     .2.var -可变的:js中的变量可以保存的数据类型是可变的(不限制)
    

(4) 变量的赋值:

  •  	var num;
         num600;
     	console.log(num);
    

(5)变量的初始化操作

  •  	 var num;
         num600;
     	console.log(num);
    

4.变量命名规范

  •  (1)由字母,数字,下划线&符号组成,不能有数字开头
     (2)不能是关键字或保留字
     (3) 区分大小写
     (4)变量名必须有意义
     (5)遵守驼峰命名法
    

5.JavaScript语言特性

  •   javascript是一种直译式脚本语言,是一种动态类型,弱类型,基于原型语言的语言,内置支持类型.
     脚本语言:(另一种语言形式编译语言),代码可以直接执行,不需要编译的语言形式.
     解释型:从上往下一行一行执行
     弱类型语言:不限制一个变量可以保存的数据类型
     动态类型语言:允许在代码执行过程中修改一个变量中的数据类型(直接改,类型转换操作)
    
  •  特点:
     a.是一种解释型脚本语言(代码不进行预编译)
     b.主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为
     c.可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离
     d.跨平台特性,在绝大浏览器的支持下,可以在多种平台下运行(如windows,linux,Mac,Android,ios等)
    

二.数据类型

1.数据类型

  • (1) 简单数据类型:

  •  number  基本值:整数和小数
     NaN 不是一个数值
     isNaN 判断是不是一个数值
     infinity 无穷大
     -infinity 无穷小
     强制转换方式:
     Number(值);
     parseInt(); 	 --- 用于将字符串转换为整数
     			   		规则:从左向右查找,遇到不是数就停止
     parseFloat(); 	 --- 用于将字符串转化为小数
     隐式转换方式:
     	+ - * / %    都能转换
     小数计算的精度问题:先扩大倍数之后计算,计算结束后再除以扩大的倍数
    
  • (2)string 字符串类型

  •  a.标识方法:用单引号或双引号括起来的字符
     b.字符串拼接用+号
     	如果+号有一边是字符串类型,+号就是拼接功能
     	如果+号两边都是数值类型,+号就是计算功能
     c..转义符:能够把特殊符号变成字符串形式输出
     	给普通字符设备特殊含义 例如:\n \t
     d..字符串长度属性
     		string.length
     e..类型转换方式:
     		强制转换: String(值) 				 ---可以用于任意数据类型的字符串转换操作
     				 值.toString()				 ---undefined/null不能转换
     		隐式转换: +号转换
     		(注意:数据转换的基本原则就是不能改变数据的原内容,通常使用''操作
     		// console.log(6 + '');)
    
  • (3)boolean

  •  	a.强制转换方式:Boolean(值);
     	b.true和false
     		计算机内部存储:0为false 1为true
     	c.隐式转换操作:
     		!!值
     	d.类型转换结果
     		转换为false结果的有6个:false  0  ”空字符串“ NaN  null  undefined
    
  • (4)undefined

  •  	出现场景:
     	1.变量声明未赋值
     	2.函数的返回值为空  默认为undefined
     	3.访问的对象的属性不存在,默认为undefined
     	4.访问的数组的元素不存在,默认为undefined
     	5.当函数的形参没有接收到对应的实参时,返回undefined
    
  • (5)null

  •  注意点:
     检测null的类型
     	console.log(objedt.prototype.toString.call(null))
     	//结果为[object Null]
    

2.基本数据类型和复杂数据类型的区别

  •  a.保存数据的个数不同
     b.在内存中的保存方式不同
     	基本类型是具体数值
     	复杂类型在内存中保存的是具体指的指针(地址)
     c.复制操作结果不同
     	复制的内存中保存的值不同
     	基本数据类型:复制之后,两个值没有关系
     	复杂数据类型:是同一个值
     d.函数参数值传递(复制)的结果不同
     
     小结:如果实参是基本数据类型,修改后必须设置返回值(获取型操作)
     	 如果实参是复杂数据类型,修改后不需要设置返回值(设置型操作)
    

3.基本数据类型的检测方式

  •  a.typeOf-----------用于检测大部分的基本数据类型
     b. instanceof---------返回的是布尔值
      	eg: console.log(arr instanceof Array);//true
     		console.log('arr' instanceof Array);//false
     c.constructor属性
     	eg:  console.log(arr.constructor===Array);//true
     d.object.prototype.toString.call(数据)------能够得到数据的类型名称
     	eg:console.log(object.prototype.toString.call(null))//结果为[object Null]
     	   console.log(object.prototype.toString.call(arr))//结果为[object Array]
    

4.基本的包装方式

  •  Number,Boolean,String
    

三.运算符(操作符)

  • 1.算数运算符

  •  + - * /
    
  • 2.比较运算符

  •  > < >= <=	所有的比较运算符均返回布尔类型值
    
  • 3.比较运算符

  •  也属于比较运算符的一部分,但是功能特殊,做单独说明
     用于进行相等比较操作  ==  !=  
     规则:比较数据的值,不比较类型。比较方式不严谨,不推荐使用。
     用于进行全等比较操作 ==  !== (推荐使用的方式)
     规则:不仅比较值,还比较类型
    
  •  特殊的使用结果:
     NaN和任意数据类型比较均返回false
     console.log(NaN == NaN); //false
     NaN的检测方法: isNaN(值)  如果字不是数,返回true,如果是数,返回false
     console.log(isNaN(100)); // false
     console.log(isNaN(NaN)); // true
     console.log(isNaN('abc')); // true
    
  • 4.逻辑运算符

  • 4.1基本使用方式:

  •  逻辑与(且) && :两个操作数均为true,结果为true;任意一个为false,结果为false
     逻辑或 ||:两个操作数均为false,结果为false,任意一个为true,结果为true
     逻辑非 ! : 取反
    

    4.2 特殊使用方式(短路操作):

  •  出现场景:当某一个操作数为非布尔类型时:
     	- 从左往右看
     	-如果操作数不是布尔类型,隐式转换为布尔类型
     	-那个操作数可以决定式子的结果,就返回这个原操作数
     逻辑非的操作:如果操作数不是布尔类型,隐式转换后取反,返回值为布尔					类型
    
  • 5.赋值运算符

  •  =   +=  -=   *=   /=   %=
    
  • 6.三元表达式

  •   表达式1 ? 表达式2 : 表达式3
     	表达式1:是判断条件
     	表达式1和表达式2是语体
     	实际上是指 对if...else语句的一种简化写法
    

四.流程控制

1.顺序结构

  • 顺序结构就是从上到下,按照标准流规则执行

2.分支结构

(1)if选择判断

  •  语法结构:
     if (/* 条件表达式 */) {
     // 执行语句
     }
    
  •  if (/* 条件表达式 */){
      // 成立执行语句
     } else {
      // 否则执行语句
     }
    
  •  if (/* 条件1 */){
      // 成立执行语句
     } else if (/* 条件2 */){
       // 成立执行语句
     } else if (/* 条件3 */){
       // 成立执行语句
     } else {
       // 最后默认执行语句
     }
    

(2)switch分支

  •  (1)做单个值的比较
     switch (expression) {//expression是个确定的值
      case 常量1:
      语句;
      break;
      case 常量2:
      语句;
      break;
      case 常量3:
      语句;
      break;
     	 …
      case 常量n:
      语句;
      break;
     default:
      语句;
      break;
     }
    
  •  (2)做范围比较
     switch也可以做范围比较:switch(true){
      case  score>=60:
     console.log('D');
      }//转化为布尔类型
     注意点:break可以省略,如果省略,代码会继续执行下一个case
         switch 语句在比较值时使用的是全等操作符, 因此不会发生类型转换
        (例如,字符串'10' 不等于数值 10)
    

3.循环结构

(1)for循环

  •  for循环----for循环一般在确定循环次数的时候比较方便
     		-------for循环的表达式之间用的是;号分隔的
     		-------for (初始化表达式1; 判断表达式2; 自增表达式3) {
     		}
    

    (2)do…while循环

  •  先执行循环体,再判断条件,(至少执行一次)
    

    (3)while循环

  • -----while (循环条件) {
    }
    // 当循环条件为true时,执行循环体,
    // 当循环条件为false时,结束循环。

4.continue和break

  •   (1) break:立即跳出整个循环,即循环结束,开始执行循环后面的内(直接跳到大括号)
      (2)continue:立即跳出当前循环,继续下一次循环(跳到i++的地方)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值