JS的介绍与基本运算

JS的介绍与入门

JS的介绍

JS是一种运行在JS解释器或者独立引擎上的,单线程、弱类型、解释性的脚本语言。

  1. 单线程:同一时间内,只能做一件事。
  2. 弱类型:声明变量时不用强制规定变量的数据类型,只用var。
  3. 解释性:解释一句,执行一句,效率低但跨平台性好。

JS的引入方式

  1. 行内式:写在标签内的js代码 如:<div onclick=" ">
  2. 外链式:使用script标签的src属性来引入外部的JS文件。
  3. 内嵌式:写在HTML文件里面,script标签里面的JS代码。

区分外链式和内嵌式:找src属性,如果使用src属性引入,那么在src引入的script标签里面写的JS代码就不起作用。

外链式可以和内嵌式一起使用。

常用的JS代码:

  1. alert(" "); 在页面弹出一个提示框
  2. prompt(" "); 在页面弹出一个输入框
  3. console.log(" "); 在控制台打印数据
  4. confirm(" "); 弹出确认框,默认有确认取消按钮
  5. document.write(" "); 动态地向页面添加内容

例:

		var age=prompt("你今年几岁了?");
		console.log("age");

JS解释器

JS解释器就是浏览器的内核
现在的主流浏览器以及内核如下:

  1. IE浏览器:Trident
  2. chrome谷歌浏览器:Blink
  3. FireFox火狐浏览器:Gecko
  4. Opera欧朋浏览器:Blink
  5. Safari苹果的浏览器:Webkit

JS变量声明

变量的作用:用来存储数据
变量的初始化:变量的声明和赋值

变量声明以及代码运行原理:
变量的声明
代码运行原理
例子:

			var a;
			a = 10;
			a = 12;
			var a;
  1. 变量声明:var a;

  2. 变量赋值:a = 10;

  3. 变量的重新赋值:a = 12;
    (1)先把内存中的原值销毁掉
    (2) 把新值存入变量

  4. 变量的重新声明:var a(上述例子第二个var a)
    (1)先销毁掉变量在内存中开辟的空间
    (2)使用var在内存中开辟新的内存空间

  5. 变量的批量声明和赋值,每个变量用“ , ”(逗号)隔开,最后必须使用分号结尾:

    			var a=12,b=23,c=23,d=24,e=30;
    
  6. 把一个变量的值赋值给另一个变量

    					var num1=12;
    					var num2=num1
    

变量的命名规则和规范

命名规则 : 必须遵守, 不遵守程序就会报错

  1. 变量名使用 _ $ 或者字母开头, 变量里面可以包括 _ $ 字母 数字
  2. 变量必须声明后才能使用, 否则就会报错
  3. 不能使用js里面的关键字和保留字

命名规范 : 程序员约定俗成的一个规矩

  1. 最好使用英语单词来命名
  2. 驼峰命名法:第一个单词首字母小写,后面的单词首字母大写
    如userName
  3. 直接量:计算机可以直接识别的数据,符合JS数据类型的数据。

报错:
程序报错:1.语法错误 2.数据错误
name可以不声明使用,其他所有的变量不声明(用var声明)直接使用都会报错。

基本数据类型

计算机把不同的数据分为不同的类型
数据类型的分类:基本数据类型、复杂数据类型

  1. 字符串类型(String类型):js里面一切以双引号、单引号包裹的内容就是字符串类型
    注意点:
    (1)在字符串里面包裹字符串,要用不同的引号
    (2)不能单引号和双引号混合使用
    (3)要注意区分变量名和字符串

  2. 数字类型 (number 类型) : 数学上一切的数字 0 1 -1 3.14
    作用 : 就是用来做数学运算
    Namber.Max_VALUE:最大值
    Namber.Min_VALUE:最小值
    Infinity:正无穷
    -Infinity: 负无穷
    NaN:(Not A Number)是一种特殊的数字数据类型,数学运算错误的结果

  3. 布尔类型(boolean类型):true false 表示的是事物的对立面 对错

  4. undefined 我们的变量声明之后 未赋值, js给变量赋的一个初始值 它是一种特殊的数据类型 他表示值为空

  5. null 表示的值为空 它是一种特殊的对象 也成Null类型 必须人为的赋值给某个变量(与undefined的区别)

基本数据检测

数据类型检测 :

(1) typeof 数据;
(2) typeof ();

typeof返回的数据有:
number、string、undefined、object、boolean、function

数据运算符

  1. 字符串连接符 如果 + 两边有一边是字符串, 那么他就是字符串连接符
		console.log(1 + 1 + "a" + 1 + 1);
        console.log(1 + 1 + "a" + (1 + 1));
  1. 赋值运算符 把运算符右边的值, 赋值给左边的变量
		var num1 = 23;
       	num1 = num2;
        console.log(num1);
  1. 算术运算符 + - * / %
		console.log(1 + 1);
        console.log(2 - 1);
        console.log(1 * 2);

注意点 :
(1)数学里面除数不能为零 js里面也一样 如果0做了除数, 那么得到的结果是Infinity
(2) 除法会得到无理数或者无限循环小数 不影响开发
(3)尽量不要使用小数去运算 会失去精确度
(4)% 求模 取余 求除法的余数

		console.log(10 % 3);
  1. 关系运算符 < , > , <= , >= , != , == , !== , ===
    表达式 : 有运算符和操作数组成的式子 关系表达式的结果只有两种结果 布尔类型的 true false
    == 是比较两个数据的值是否相等 不比较数据类型
			console.log(null == undefined);
   			 console.log(3 == "3");

=== 比较两个数据的数值和数据类型是否全等

			console.log(null === undefined);
 		   	console.log(3 === 3);
    		console.log(3 === "3");
  1. 逻辑运算符 && || ! 逻辑运算符是比较多个关系表达式之间的关系 逻辑运算符的结果不只是布尔类型的值
    (1)逻辑与 && 一假则假

     		表达式1    &&   表达式2         结果
             false          true          false
             false          false         false
             true           false         false
    

    (2)逻辑或 || 一真则真

     		表达式1         ||     表达式2       结果
     		 false          		true       true
             false          		false      false
             true          			false      true
             true          		 	true       true          
    

    (3) 逻辑非 ! true变false false变true

			console.log(!true);   // false
           console.log(!false);  // true
  1. 复合运算符:
    (1)+=:在自身基础上加多少
    (2)-=:在自身基础上减多少
    (3)*=:在自身基础上乘多少
    (4)/=:在自身基础上除多少
    (5)%=:在自身基础上模于多少
    (6)++:在自身基础上加1,分为前自增和后自增
    前自增:先自身加1,再运算 var num=++num
    后自增:先运算,再自身加1 var num=num++
    (7)- -:在自身基础上减1,分为前自减和后自减(原理和++一样)
  2. 运算符的优先级:(从高到低)
    (1)()可以用来提升优先级
    (2)自增自减
    (3)算术运算符
    (4)关系运算符
    (5)逻辑运算符
    (6)赋值运算符

Math

  1. Math.abs() 求某个数的绝对值
 		var num =  -88;
    	console.log(Math.abs(num));
  1. Math.round() 四舍五入
	var num = 5.66;
    console.log(Math.round(num));
  1. Math.max() 求最大值
   console.log( Math.max(23, 25, 42));
  1. Math.min() 求最小值
  console.log( Math.min(23, 25, 42));
  1. Math.random() 生成0-1之间的随机数
  var number1 = Math.random() 
    console.log(number1);
var number2 = Math.random() * 100 //生成0-100之间的随机数
    console.log(number2);
  1. 底板函数 Math.floor() 向下取整
console.log(Math.floor(number1));
  1. 天花板函数 Math.ceil() 向上取整
 	console.log(Math.ceil(number1));
    var num1 = -5.23;
    console.log(Math.ceil(num1));
  1. Math.PI 常量 必须使用Math去调用
//计算圆的面积
 	console.log(Math.PI);
    var r = 23;
    console.log(Math.PI * r * r);
  1. Math.E 自然对数e
 console.log(Math.E);
  1. Math.pow(x, y) 幂运算:x的y次方
 	console.log(Math.pow(10, 3));
 	//圆的面积:
    var sqa = Math.PI * Math.pow(r, 2);
    console.log(sqa);
  1. Math.sqrt() 开平方
	var num=9
	console.log(Math.sqrt(num));

NaN :Not A Number

  1. 他是数字类型中一个特殊的值 是数学计算错误得出的结果
  2. NaN不等于任何数值, 包括他自己
  3. NaN与任何数字进行计算 得到的都是NaN
  4. 检测一个数据是不是NaN : isNaN(数据)
	console.log("AAA" - 1);
    console.log(NaN == 0);  // false
    console.log(NaN == NaN);  // false
    
    console.log(typeof(NaN));
    
    console.log(NaN + 1);  // NaN

    console.log(isNaN("AAA" - 1));  // true
    console.log(isNaN(123));  // false

练习:

//下列哪些变量命名不符合变量命名规则 : 


var asdfg = 12;			//true
var -name = "张三";		//false
var 5age = 18;			//false
var $number = 888;		//true
var gen2der = true;		//true
var _$$$$$ = "456";		//true
var -fesdj = "2344";	//false
var 666 = 666;			//false
var -name = "张三";		//false
var $name = "李四";		//true
var while = "开始";		//false
var _123 = "123";		//true

//输出下列typeof的结果 : 
var num = 666;			
typeof num;			//number
typeof typeof num;		//string
typeof "true"			//string

var a;				
typeof a;			//undefined
a = true;			
var b= "true";			
typeof a;			//boolean
typeof b;			//string
b = a;
typeof a;			//boolean
typeof b;			//boolean


var age1 = 18;
var age2 = "20";
age1 = age2;
var age2;
console.log(age1,age2);				//20  20
cosole.log(typeof age1, typeof age2);		//string string



//请直接说出下面的结果
    typeof(1) ,   						//number
    typeof(-1)    						//number
    typeof(-1.1)  						//number
    typeof(11),   						//number
    typeof("111")						//string
    typeof("",  						//string
    typeof("  "), 						//string
    typeof("abc"),						//string
    var a = 1; typeof(a);  					//number
    var a = 1; var b = 0 ;alert(a+b);				  //1
    var a = 1 ; var b = "0"; alert(typeof(a+b));		//string
    var a = 1 ; var b = 1 + "1"; alert(typeof(b));		//string
    var a = "a"; alert(typeof(a+""));				//string


//1.写一个程序,要求用户输入鸡蛋数,如果20个鸡蛋放一盒,判断要多少个盒子。

//提示: (1)1个鸡蛋,需要一个盒子 (2)20个鸡蛋,需要一个盒子 (3)21个鸡蛋需要2个盒子
				
		var num=prompt("请输入");
		var lanzi=Math.ceil(num/20);
		alert("你需要"+lanzi+"盒子");
		



//2.写一个程序,输入人数,每10人一列,要求站成一个方队(每队必须保持10人,不够就不要了),可以排多少列,余多少人。


		var num=prompt("人数");
		var lie=Math.floor(num/10);
		var yu=num%10;
		alert("可以排"+lie+"列"+"余"+yu+"人");



//3.写一个程序,随机生成0-100之间的三个数,分别输出,并且比较这三个数的大小。(打印出最大数和最小数)
		var num1=Math.random()*100;
		var num2=Math.random()*100;
		var num3=Math.random()*100;
		
		console.log(num1,num2,num3);
		console.log(Math.max(num1,num2,num3));
		console.log(Math.min(num1,num2,num3));




		var num1=Math.random()*100;
		var num2=Math.random()*100;
		var num3=Math.random()*100;
		
		alert("第一个数:"+num1+"第二个数:"+num2+"第三个数:"+num3);
		alert("最大值为:"+Math.max(num1,num2,num3)+"最小值为:"+Math.min(num1,num2,num3));
发布了26 篇原创文章 · 获赞 5 · 访问量 1056

猜你喜欢

转载自blog.csdn.net/weixin_45060872/article/details/103690732