JavaScript——基础知识、函数

JavaScript——基础知识、函数

一、JS简介

	JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
	JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。
JavaScript的标准是ECMAScript 。截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了ECMAScript的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为ECMAScript 6 或者ES2015。

二、JS基础

1、注释语法:
	//单行注释
	/*多行注释*/
2、引入JS的多种方式
	2.1 head内script标签内编写
	2.2 head内script标签src属性引入外部js资源
 	2.3 body内最底部通过script标签src属性引入外部js资源(最常用)
	ps:注意页面的下载是从上往下的 所以操作标签js代码一定要等待标签加载完毕再执行才可以正常运行
3.结束符号
	分号

三、变量与常量

/*
1.pycharm创建js文件或者html文件(适合编写较为复杂的js代码)
2.浏览器提供编写js代码的环境
*/
//在js中声明变量需要使用关键字
	var
    	var name = 'jason';
 	let
    	let name = 'tony';
/*	
	ps:let是ECMA6新语法 可以在局部定义变量不影响全局
	在js中声明常量也需要使用关键字
*/
	const 
    	const pi = 3.14;

四、基本数据类型

// js中查看数据类型的方式: typeof

/*
1、数值类型(Number)
	在js中整型在JS中整型与浮点型不分家 都叫Number
	NaN也属于数值类型 意思是:不是一个数字(Not A Number)
*/
/*
2、字符类型
	单引号 'maria'
	双引号 "maria"
	模板字符串 `maria`
*/
var name = 'maria'
let age = 18
let desc = `my name is ${name},my age is ${age}`
// 字符串拼接推荐使用加号

/*
3、布尔类型(Boolean)
	JS里面的布尔值:
		true、false
*/

/*
4.null与undefined
	null表示值为空(曾经拥有过) undefined表示没有定义(从来没有过)
*/

/*
对象(object)
	数组(Array)
	let l1= []
	let d1 = {'name':'jason',}
	let d2 = new Object();
*/

五、运算符

/*
1.算术运算符
	+ - * / % ++(自增1) --(自减1)
	var x=10;
    var res1=x++;  加号在后面	先赋值后自增
    var res2=++x;	加号在前面	 先自增后赋值
*/

/*
2.比较运算符
	!=(值不等 弱) ==(值相等 弱) ===(值相等 强) !==(值不等 强)
	ps:会不会自动转换类型
*/

/*
3.逻辑运算符
	&&(与)	||(或)  !(非)
*/

六、流程控制

1.单if分支
	if (条件){
        条件成立执行的代码
    }
2.if...else分支
	if(条件){
        条件成立执行的代码
    }else{
        条件不成立执行的代码
    }
3.if...else if...else分支
	if(条件1){
        条件1成立执行的代码
    }else if(条件2){
        条件1不成立条件2执行的代码
    }
    else{
        条件1和2都不成立执行的代码
    }
4.如果分支结构中else if很多还可以考虑使用switch语法
	switch(条件){
        case 条件1:
        	条件1成立执行的代码;
        	break;  如果没有break会基于某个case一直执行下去
        case 条件2:
        	条件2成立执行的代码;
        	break;
        case 条件3:
        	条件3成立执行的代码;
        	break;
       	case 条件4:
        	条件4成立执行的代码;
        	break;
        default:
  			 条件都不满足执行的代码
    }
 
for循环
	for(起始条件;循环条件;条件处理){
        循环体代码
    }
	for(let i=0;i<10;i++){
       	 console.log(i)
    }
 	let dd = {'name':'jason','age':18}
   for(let k in dd){
        console.log(k)
    }

while循环
	while(循环条件){
        循环体代码
    }
    

七、三元运算

/*
三元运算
	python中:   值1 if 条件 else 值2
	JS中:	   条件?值1:值2
*/

八、函数

/*
python中函数的定义
    def 函数名(形参):
        '''函数注释'''
        函数体代码
        return 返回值
*/
function 函数名(形参){
    // 函数注释
    函数体代码
    return 返回值
}
# 匿名函数
var s1 = function(a, b){
  return a + b;
}
# 箭头函数
var f = v => v;
var f = function(v){
  return v;
}

var f = () => 5;
var f = function(){return 5};

var sum = (num1, num2) => num1 + num2;
var sum = function(num1, num2){
  return num1 + num2;  
}

1.JS中函数的形参与实参个数可以不对应
	传少了就是undefined 传多了不用
2.函数体代码中有一个关键字arguments用来接收所有的实参
3.函数的返回值如果有多个需要自己处理成一个整体

九、内置对象

var d = new Date(); 
//getDate()                 获取日
//getDay ()                 获取星期
//getMonth ()               获取月(0-11)
//getFullYear ()            获取完整年份
//getYear ()                获取年
//getHours ()               获取小时
//getMinutes ()             获取分钟
//getSeconds ()             获取秒
//getMilliseconds ()        获取毫秒
//getTime ()                返回累计毫秒数(从1970/1/1午夜)


let dd = {name: 'jason', age: 18}
JSON.stringify(dd)	序列化
JSON.parse(ss)	   反序列化


定义正则两种方式
var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/;
1.全局模式的规律
	lastIndex
2.test匹配数据不传默认传undefined

十、练习

	// 2017-12-27 11:11 星期三
	function get_time(){
		var date=new Date();
		var y = date.getUTCFullYear() // 2022 年
		var m = date.getMonth()+1 // 12	月
		var d = date.getDate() // 5	日
		var h = date.getHours() //  时
		var mi = date.getMinutes()// 分
		var week = date.getDay() // 星期
		if (m<10){
			m = '0'+m;
		}
		if (d<10){
			d = '0' + d;
		}
		if (h<10){
			h = '0' + h;
		}
		if (mi<10){
			mi = '0' +mi;
		}
		switch (true){
			case week == 1:
				week = '星期一';
				break;
			case week == 2:
				week = '星期二';
				break;
			case week == 3:
				week = '星期三';
				break;
			case week == 4:
				week = '星期四';
				break;
			case week == 5:
				week = '星期五';
				break;
			case week == 6:
				week = '星期六';
				break;
			case week == 7:
				week = '星期日';
				break;
		}
		console.log(y+'-'+m+'-'+d+' '+h+':'+mi +' '+week)
	}
posted @ 2022-12-05 20:28  负剑远游行归来仍少年  阅读(87)  评论(0)    收藏  举报