js入门基础语法
js入门基础语法
什么是javaScript
概述
javaScript是世界上最流行的一门脚本语言
javaScript是一门很随意的语言 有句话叫做如果可以重新来过我就只愿意学javaScript
足够简单可以写前端也可以写后端
java和javaScript没关系知识名字恰好比较像 蹭java的热度
历史
博客JavaScript的起源故事-CSDN博客
javaScript从开发到上线10天
ECMAScript他可以理解成javaScript的一个标准
最新的版本语句到了es6版本了,但是大部分的浏览器还停留在es5代码上 这就使得开发环境和线上环境,版本不一致
快速入门
引入javaSciprt
内部标签
<script>
//``````
</script>
外部引入
abs.js
//
test.html
<script src="abs.js"></script>
基本语法入门
<script>
// 1.定义变量 变量类型 变量名=值;
var score=71;
alert( score);
// 2.条件控制
if(score>60&&score<80){
alert("及格");
}else if(score>=80){
alert("优秀");
}else{
alert("不及格");
}
//console.log(score) 在浏览器的控制台打印变量 相当于java中发sout
</script>

数据类型
变量
var 王者荣耀="倔强青铜"//只有数字不能大头
number
js不区分小数和整数,Number
123 //整数
123.1 //浮点数
1.123e3 //科学计数法
-99 //负数
NaN // not anumber
Infinity //表示无线大
字符串
"zbc" 'zbc'
布尔值
true false
逻辑运算
&& 两个都为真
|| 一个为真,结果为真
! 真就是假 假就是真
不叫运算符!!!!!!重要
= 赋值预算符
== 等于(类型不一样,值一样,也会判断成true)
=== 就对等于(类型一样,值一样,结果true)
这是js的一个缺陷,坚持不要用= =比较
须知:NaM= =NAN,这个与所有的数值都不相等,包括自己
只能通过isNAN(NAN)来判断这个数是否是NaN
浮点数问题
console.log((1/3)===(1-2/3))
尽量避免使用浮点数进行运算,存在精度问题!
Math.abs(1/3-(1-2/3))<0.00000001
null 和undefine
- null 空
- undefined 未定义
数组
**java的数组必须是相同类型的对象~,js中不需要这样 **
//保证代码的可读性,尽量使用[]
var arr =[1,2,3,4,5,6,'hello',null,true];
new Array(1,2,16,3,8,2,'hello');
取数组下标:如果越界了,就会
undefined而不是报错
对象
对象是大括号 数组是中括号,每一个属性之间使用逗号隔开,最后一个属性不需要添加
var person={
name:“qinjiang”,
age:3,
tags:['js','java']
}

数据类型
字符串
- 正常我们使用单引号或者双引号包裹
- *注意使用转义字符 *
- ' 单引号
- \n 换行
- \t tab
- \u4e2d Unicode字符
- \x41 Ascll字符
- 多行字符串编写
//tab 上面esc键下面
var msg=`
Hello
world
`
- 模版字符串
let name="qinjing"
let age=3;
let mag=`nihaoya,${name}`
- 字符串长度
str.length - 字符串的可变性和不可变性
Let student="student"
Console.log(student[0]) s
Student[0]=1 1
Console.log(student) student
- 大小写转换
student.toUpperCase()
student.toLowerCase()
- student.indexOf('t') //什么下表
- subing
[)
student.subing(1) //从第一个字符串截取到最后一个
student.subing(1,3)//包头不包尾

数组
Array可以包含任意的数据类型
var arr=[1,2,3,4,5,6]
- 长度
arr.length
注意: 加入给arr.length赋值,数组大小就会发生变化,如果赋值过小,元素就会丢失

- indexof,通过元素获得下标索引、
arr.indexof(2) //1
字符串的1和数字1不一样

- slice() 截取Array的一部分,返回一个新数组
类似于string的substring

- pop(),push()
添加删除从尾部

- unshift(),shift()
添加删除从头部

- 排序 sort()
- 元素反转reverse()

- 拼接concat()
并不会修改数组,只是会返回一个新数组

- 连接符 join
打印数组,使用特地的字符串连接

- 多维数组
- fill

对象
若干个键值对
var 对象名={
属性名:属性值,
属性名:属性值,
属性名:属性值
}
var person={
name:"kuangsheng",
age:3,
email:"1985298021@qq.com",
score:0
}
js中的对象,{}表示一个对象,键值对描述属性XXXXXX:XXXXXX多个属性之间使用逗号隔开,最后一个不加逗号!!!!
- 对象赋值
person.name="qinjiang"
"qinjiang"
person.name
"qinjiang"
- 使用一个不存在的对象属性,不会报错! undefined
person.haha
undefined
- 动态的删除属性
delete person.name
true
person
- 动态的添加
person.haha="haha"
"haha"
person
- 判断属性值是否在这个对象中! XXX in XXX!
'age' in person
true
//继承 tostring是父类有的
'toString' in person
true
- 判断属性值是否在这个对象自身有的hasOwnProperty()
person.hasOwnproperty('toString')
false
person.hasOwnProperty(;age)
true
流程控制
判断
var age =3
if(age>3){
slert('hah');
}else if(age<5){
alert('kuwa');
}else{
alert('kukuku~~~~');
}
循环避免死循环
while(age<100){
age=age+1;
console.log(age);
}
for(let i=0;i<100;i++ ){
console.log(i);
}
do{
age=age+1;
console.log(age);
}while
//数组循环=>函数循环 foreach
var person={ 1,1,2,3,6,58,52,41}
person.forEach(function (value)){
console.log(value)
}
//数组循环
for(var num in person){
console.log(person[num])
}
map set
es6 新特性
map
//统计学生的成绩和学生的名字
//var names=["tom","jack","haha"]
var map=new Map(['tom',100],['jack',90],['haha',90])
var name=map.get('tom');//取值
map.set('admin',123456)//添加
console.log(name);
map.delete("tom")//删除
set
var set=new Set([3,1,1,1,1])
console.log(set)//去重 3,1
set.add(2) //添加 3,1,2
set.delete(1) //删除
console.log(set.has(3))//是否包含某个元素
iterator
es6 新特性
遍历迭代
//通过 for of 实现 迭代循环 通过for in下表
//遍历数组
var arr=[3,4,5]
for(var x of arr){//不仅可以打印数组还可以打印集合
console.log(x)
}
//遍历map集合
var map=new Map(['tom',100],['jack',90],['haha',90])
for(var x of map){
console.log(x)
}
//遍历set集合
var set=new Set([3,1,1,1,1])
for(var x of set){
console.log(x)
}
js入门基础语法的更多相关文章
- Scala快速入门 - 基础语法篇
本篇文章首发于头条号Scala快速入门 - 基础语法篇,欢迎关注我的头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_tech)获取更多干货,也欢迎关注我的 ...
- js入门基础
JavaScript语言介绍 JavaScript的历史 诞生于1995年,最初名字叫做Mocha,1995年9月改为LiveScript.Netscape公司与Sun公司(Java语言的发明者)达成 ...
- [JS] javascript基础语法
W3CSchool全套Web开发手册:点击下载 1.javascript是什么 js是具有面向对象能力的,解释性的程序设计语言. 2.js的类型 [基本类型]:string number boolea ...
- node.js入门基础
内容: 1.node.js介绍 2.node.js内置常用模块 3.node.js数据交互 一.node.js介绍 (1)node.js特点 与其他语言相比,有以下优点: 对象.语法和JavaScri ...
- react入门----基础语法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- css与html 与js的基础语法
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Sample_2-23456.a ...
- JS的基础语法
8.运算符号表达式 ①数学运算符 数学运算符有+.-.*./除().%(余数) var a = 10; var b = 5; alert(a+b); 预览以后在网页上弹出的对话框数值就是15. ②逻辑 ...
- js入门基础7-2 (求模-隔行变色)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- python入门-基础语法
一.变量 定义字符串要加单引号‘’ 变量命名规范: 变量名只能是字母.数字或下划线的任意组合 变量名的第一个字符不能是数字 变量名不能用关键字 变量名不要用中文 变量名不要太长,区分大小写 面就用单引 ...
- 转帖 JS的基础语法2
条件语句(if.switch). 循环语句(while.do…while. for … in).跳转语句(break,continue) 1.条件语句 Ø if语句 javascrip中的if语句 v ...
随机推荐
- 【HUST】网安|计算机网络安全实验|实验一 TCP协议漏洞及利用
写在最前: 实验指导书已经写得非常好了,这是我个人的实验记录,并没有认真整理和记录容易出问题的地方.只是免得以后忘了什么是netwox还得翻学习通. 文章目录 涉及代码的仓库地址 docker使用 建 ...
- 那些神奇的CSS特性,你都有用过么?
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- .net6.0及以上WPF中使用GDI+的demo
using System; using System.Drawing; using System.Runtime.InteropServices; using System.Windows; usin ...
- React-Native开发鸿蒙NEXT-cookie设置
React-Native开发鸿蒙NEXT-cookie设置 应用有个积分商城,做一些积分兑换的业务,就一个基于react-native-webview开发的页面,在页面加载的时候通过js注入来设置co ...
- 【对称加密】DES与AES算法详解及Java实现
对称加密:DES与AES算法详解及Java实现 目录 对称加密概述 DES算法详解 AES算法详解 Java实现示例 安全注意事项 总结 1. 对称加密概述 对称加密是指加密和解密使用相同密钥的加密算 ...
- manim边做边学--显函数图像
在Manim库中,FunctionGraph类是一个核心组件,专门用于在坐标系中绘制函数图像. FunctionGraph的主要作用是将数学函数以直观的图形形式展示出来,使得复杂的数学概念更加容易理解 ...
- 详解鸿蒙开发如何上传三方库到ohpm仓库
前两天幽蓝君在ohpm仓库上传了自己的第一个三方库,完整体验了一下ohpm的上传流程,感觉还是比较繁琐的,所以把上传流程和一些注意事项分享给大家. 先介绍一下怎么开发一个三方库,在项目名称右键,新建M ...
- pytorch入门 - LetNet5 神经网络
1.LetNet5简介 LeNet5是由Yann LeCun等人在1998年提出的一种卷积神经网络架构,主要用于手写数字识别.它是早期卷积神经网络的成功应用之一,为现代深度学习模型奠定了基础.LeNe ...
- 题解:CF1119D Frets On Fire
大水题. 首先,若区间内只有一根弦,不会对答案有贡献. 我们思考如何对答案产生贡献.我们知道,对于每一个 \(s_i\),都会产生一段 \(s_i+r-l\) 的连续序列,在对 \(s\) 数组排序后 ...
- LLM 输出配置 (LLM output configuration)
1.概述 大型语言模型(LLM)的输出行为可以通过多种配置参数进行精细控制.这些参数共同决定了模型生成文本的质量.风格和多样性.理解这些配置选项及其相互作用对于有效使用LLM至关重要. 2.输出长度 ...