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']
}

数据类型

字符串

  1. 正常我们使用单引号或者双引号包裹
  2. *注意使用转义字符 *
  • ' 单引号
  • \n 换行
  • \t tab
  • \u4e2d Unicode字符
  • \x41 Ascll字符
  1. 多行字符串编写
//tab  上面esc键下面
var msg=`
Hello
world
`
  1. 模版字符串
let  name="qinjing"
let age=3;
let mag=`nihaoya,${name}`
  1. 字符串长度

    str.length
  2. 字符串的可变性和不可变性
Let student="student"
Console.log(student[0]) s
Student[0]=1 1
Console.log(student) student
  1. 大小写转换
student.toUpperCase()
student.toLowerCase()
  1. student.indexOf('t') //什么下表
  2. subing
[)
student.subing(1) //从第一个字符串截取到最后一个
student.subing(1,3)//包头不包尾

数组

Array可以包含任意的数据类型

var arr=[1,2,3,4,5,6]
  1. 长度
arr.length

注意: 加入给arr.length赋值,数组大小就会发生变化,如果赋值过小,元素就会丢失

  1. indexof,通过元素获得下标索引、
arr.indexof(2)     //1

字符串的1和数字1不一样

  1. slice() 截取Array的一部分,返回一个新数组

    类似于string的substring

  2. pop(),push()

    添加删除从尾部

  3. unshift(),shift()

    添加删除从头部

  4. 排序 sort()
  5. 元素反转reverse()

  6. 拼接concat()

    并不会修改数组,只是会返回一个新数组

  7. 连接符 join

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

  8. 多维数组
  9. fill

对象

若干个键值对

var 对象名={
属性名:属性值,
属性名:属性值,
属性名:属性值
}
var person={
name:"kuangsheng",
age:3,
email:"1985298021@qq.com",
score:0
}

js中的对象,{}表示一个对象,键值对描述属性XXXXXX:XXXXXX多个属性之间使用逗号隔开,最后一个不加逗号!!!!

  1. 对象赋值
    person.name="qinjiang"
"qinjiang"
person.name
"qinjiang"
  1. 使用一个不存在的对象属性,不会报错! undefined
person.haha
undefined
  1. 动态的删除属性
delete person.name
true
person
  1. 动态的添加
person.haha="haha"
"haha"
person
  1. 判断属性值是否在这个对象中! XXX in XXX!
'age' in person
true
//继承 tostring是父类有的
'toString' in person
true
  1. 判断属性值是否在这个对象自身有的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入门基础语法的更多相关文章

  1. Scala快速入门 - 基础语法篇

    本篇文章首发于头条号Scala快速入门 - 基础语法篇,欢迎关注我的头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_tech)获取更多干货,也欢迎关注我的 ...

  2. js入门基础

    JavaScript语言介绍 JavaScript的历史 诞生于1995年,最初名字叫做Mocha,1995年9月改为LiveScript.Netscape公司与Sun公司(Java语言的发明者)达成 ...

  3. [JS] javascript基础语法

    W3CSchool全套Web开发手册:点击下载 1.javascript是什么 js是具有面向对象能力的,解释性的程序设计语言. 2.js的类型 [基本类型]:string number boolea ...

  4. node.js入门基础

    内容: 1.node.js介绍 2.node.js内置常用模块 3.node.js数据交互 一.node.js介绍 (1)node.js特点 与其他语言相比,有以下优点: 对象.语法和JavaScri ...

  5. react入门----基础语法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. css与html 与js的基础语法

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Sample_2-23456.a ...

  7. JS的基础语法

    8.运算符号表达式 ①数学运算符 数学运算符有+.-.*./除().%(余数) var a = 10; var b = 5; alert(a+b); 预览以后在网页上弹出的对话框数值就是15. ②逻辑 ...

  8. js入门基础7-2 (求模-隔行变色)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. python入门-基础语法

    一.变量 定义字符串要加单引号‘’ 变量命名规范: 变量名只能是字母.数字或下划线的任意组合 变量名的第一个字符不能是数字 变量名不能用关键字 变量名不要用中文 变量名不要太长,区分大小写 面就用单引 ...

  10. 转帖 JS的基础语法2

    条件语句(if.switch). 循环语句(while.do…while. for … in).跳转语句(break,continue) 1.条件语句 Ø if语句 javascrip中的if语句 v ...

随机推荐

  1. 【HUST】网安|计算机网络安全实验|实验一 TCP协议漏洞及利用

    写在最前: 实验指导书已经写得非常好了,这是我个人的实验记录,并没有认真整理和记录容易出问题的地方.只是免得以后忘了什么是netwox还得翻学习通. 文章目录 涉及代码的仓库地址 docker使用 建 ...

  2. 那些神奇的CSS特性,你都有用过么?

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  3. .net6.0及以上WPF中使用GDI+的demo

    using System; using System.Drawing; using System.Runtime.InteropServices; using System.Windows; usin ...

  4. React-Native开发鸿蒙NEXT-cookie设置

    React-Native开发鸿蒙NEXT-cookie设置 应用有个积分商城,做一些积分兑换的业务,就一个基于react-native-webview开发的页面,在页面加载的时候通过js注入来设置co ...

  5. 【对称加密】DES与AES算法详解及Java实现

    对称加密:DES与AES算法详解及Java实现 目录 对称加密概述 DES算法详解 AES算法详解 Java实现示例 安全注意事项 总结 1. 对称加密概述 对称加密是指加密和解密使用相同密钥的加密算 ...

  6. manim边做边学--显函数图像

    在Manim库中,FunctionGraph类是一个核心组件,专门用于在坐标系中绘制函数图像. FunctionGraph的主要作用是将数学函数以直观的图形形式展示出来,使得复杂的数学概念更加容易理解 ...

  7. 详解鸿蒙开发如何上传三方库到ohpm仓库

    前两天幽蓝君在ohpm仓库上传了自己的第一个三方库,完整体验了一下ohpm的上传流程,感觉还是比较繁琐的,所以把上传流程和一些注意事项分享给大家. 先介绍一下怎么开发一个三方库,在项目名称右键,新建M ...

  8. pytorch入门 - LetNet5 神经网络

    1.LetNet5简介 LeNet5是由Yann LeCun等人在1998年提出的一种卷积神经网络架构,主要用于手写数字识别.它是早期卷积神经网络的成功应用之一,为现代深度学习模型奠定了基础.LeNe ...

  9. 题解:CF1119D Frets On Fire

    大水题. 首先,若区间内只有一根弦,不会对答案有贡献. 我们思考如何对答案产生贡献.我们知道,对于每一个 \(s_i\),都会产生一段 \(s_i+r-l\) 的连续序列,在对 \(s\) 数组排序后 ...

  10. LLM 输出配置 (LLM output configuration)

    1.概述 大型语言模型(LLM)的输出行为可以通过多种配置参数进行精细控制.这些参数共同决定了模型生成文本的质量.风格和多样性.理解这些配置选项及其相互作用对于有效使用LLM至关重要. 2.输出长度 ...