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)
}
标签:函数,代码,JavaScript,基础知识,let,条件,var,js
From: https://www.cnblogs.com/HaiMan/p/16953410.html