JavaScript

1|0JavaScript

JS全称JavaScript,是一门前端工程师的编程语言。

  • 目前,JS既可以开发浏览器端的交互效果,还可以进行后端开发
  • JS是解释型语言,无需编译,直接执行
  • 具有弱类型语言(弱类型语言,数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。你想把这个变量当做什么类型来用,就当做什么类型来用,语言的解析器会自动(隐式)转换。)、基于对象、跨平台性的特点
  • 主要应用于开发浏览器端的交互效果,后端开发,例如:创建WEB服务器,访问数据库,调用其它服务器......

1|1JS语法规范

  • 区分大小写
  • 每行代码结束的分号可以省略
  • 分为单行注释(// 单行注释)和多行注释(/* 多行注释 */)

1|2引入JS的多种方式

1.head内script标签内编写
2.head内script标签src属性引入外部JS资源
3.body内最底部通过script标签src属性引入外部JS资源(常用)
"PS:页面的下载是自上往下的,所以操作标签JS代码一定要等待标签加载完毕再执行才可以正常运行"
4.结束符号
分号(;),很多时候不写也没问题

1|3变量与常量

"""
pycharm创建JS文件或者HTML文件(适用于编写复杂的JS代码)
浏览器提供编写JS代码的环境
"""
# JS中声明变量需要使用关键字(var、let—— 字符串)
var声明的变量可以用来保存任何类型的值,声明的范围是函数作用域;
var
var name='jsaon';
let声明的范围是块作用域;
let
let name='tony';
# let 是ECMA6新语法,可以在局部定义变量不影响全局
"ps:声明变量未赋值为undefined,变量可多次赋值且赋不同类型的值"
# JS中声明常量需要使用关键字const(数字)
const
const pi = 3.14;
"声明以后不允许为空,不允许重新赋值"

1|4基本数据类型

"""
js中查看数据类型的方式—— typeof
"""
1.数值类型(number)
js中整型与浮点型都叫 Number,NaN也属于数值类型,意思是:
不是一个数字(Not A Number)
var a1=32.00; # 使用小数点来写
var a2=32; # 不使用小数点来写
极大或极小的数字可以通过科学计数法来写:
var x=123e5; # 12300000
var y=123e-5; # 0.00123
常用方法:
parseInt("123") #123
parseInt("haha")# NaN,表示值不是数字
parseFloat("123.23") # 123.23
2.字符类型(string)
被引号包含的值,不区分单双引号。
单引号 'jason'
双引号 "jason"
模板字符串 `jason`
let name1 = 'jason'
let age1 = 18
undefined
let desc = `my name is ${name1} my age is ${age1}`
eg:
var a="hello"
var b="everyone";
var c=a+b;
console.log(c);
# helloeveryone
3.布尔类型(boolean)
var x =true;
var y= false;
# ""(空字符串)、0、null、undefined、NaN都是false
4.null(空)与undefined(未定义)
undefined,声明变量未赋值时为undefined;还有函数无返回值时也返回undefineed(从未有过)
null表示值为空,在需要指定或清空一个变量时才会使用(曾经拥有)
5.对象(object)
数组,类似于python中的列表
let l1=[]
自定义对象,类似于python中的字典
let d1={'name':'jason',}
let d2=new object();
# 获取值,d1.name=jason

1|5运算符

# 算数运算符
+ - * / % ++ --
var x=10;
var res1=x++;# 先取值再自增
var res2=++x;# 先自增再取值
res1;
10
res2;
12
# x++和++x出现在赋值运算式,x++会先赋值再进行自增1运算,而++x会先进行自增运算再赋值
# 比较运算符
> >= < <= != == === !==
== “1” // true 弱等于
=== "1" // false 强等于
"JS是一门弱类型语言(会自动转换数据类型),当用两个等号进行比较时,JS内部会自动先将数值类型的1转换成字符串类型的1再进行比较,所以写JS代码涉及到比较时尽量用三等号来强制限制类型,防止判断错误"
# 逻辑运算符
&& || !
# 赋值运算符
= += -= *= /=

1|6流程控制

1.if分支
if (条件){
条件成立执行的代码
}
# if
if (a>5){
console.log("yes");
}
2.if...else分支
if(条件){
条件成立执行的代码
}else{
条件不成立执行的代码
}
# if-else
if (a>5){
console.log("yes");
}
else{
console.log("no");
}
3.if...else if...else分支
if(条件1){
条件1成立执行的代码
}else if(条件2){
条件1不成立条件2执行的代码
}
else{
条件12都不成立执行的代码
}
# if-else if-else
var a=10;
if(a>5){
console.log("a>5");
}
else if(a<5){
console.log("a<5");
}
else{
console.log("a=5");
}
4.如果分支结构中else if很多还可以考虑使用switch语法
switch(条件){
case 条件1:
条件1成立执行的代码;
break; 如果没有break会基于某个case一直执行下去
case 条件2:
条件2成立执行的代码;
break;
case 条件3:
条件3成立执行的代码;
break;
case 条件4:
条件4成立执行的代码;
break;
default:
条件都不满足执行的代码
}
# switch
var day = new Date().getDay();
switch (day) {
case 0:
console.log("Sunday");
break;
case 1:
console.log("Monday");
break;
default:
console.log("...")
}
# switch中的case子句通常都会加break语句,否则程序会继续执行后续case中的语句。
5.for循环
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)
}
6.while
while循环
while(循环条件){
循环体代码
}
# while 循环
var i = 0;
while (i < 10) {
console.log(i);i++;
}
# 三元运算
python中:值1 if 条件 else2
JS中:条件?值1:值2
var a=1;
var b=2;
var c=a<b?a:b
"""
三元运算顺序是先写判断条件a<b,若条件成立则返回的值为a;若条件不成立则返回的值为b
"""
# 赋值a=8,b=10:
var a=8,b=10;
var x=a<b ?a:b;
x
8

1|7函数

"""
python中函数的定义
def 函数名(形参):
'''函数注释'''
函数代码
return 返回值
"""
function 函数名(形参){
//函数注释
函数体代码
return 返回值
}
# 匿名函数
var s1=function(a,b){
return a+b;
}
# 箭头函数
var f=v => v;
var f= function(v){
return v;
}
1. JS中函数的形参与实参个数可以不对应,传少了undefined,传多了用不着
2.函数体代码中有一个关键字arguments用来接收所有的实参
3.函数的返回值如果有多个需要自己处理成一个整体

1|8内置对象

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

__EOF__

本文作者知了了了了
本文链接https://www.cnblogs.com/zhiliaowang/p/16953616.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   知了了了了  阅读(475)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示