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. python打包exe自定义图标

    1.生成.ico图标 https://www.aconvert.com/cn/icon/jpg-to-ico/ 2.打包 pyinstaller -F -w -i 666.ico pdfToword. ...

  2. 工具 | todesk最新版设备代码、连接密码读取工具,附下载链接

    工具介绍: todesk最新版读取设备代码.连接密码 工具 下载链接: 下载链接: todesk最新版读取设备代码.连接密码 工具下载 使用说明 工具使用效果如图

  3. Mysql 实现 rank 和 != 问题

    我一直相信, 人是能预测未来的, 这应该是前几年看弗洛伊德, 荣格的一些心理学书, 给我的一些感受, 有个片段是关于做梦的, 一个人梦见子弹穿过他自己的头颅, 结果不久, 他就去世了. 这个片段当时给 ...

  4. Manim:动画制作背后的魔法

    Manim是一个强大的数学动画制作库,它能够帮助我们创建出令人惊叹的动画,无论是用于教学还是娱乐. 不过,对于初学者来说,Manim的内部工作机制可能显得有些复杂. 本文将从整体上简单介绍Manim的 ...

  5. AI写程序:让Manus分析一个github项目生成一个官方网站

    提出问题,使用Manus帮我生成一个官方网站 提问: 我有一个github项目,是https://github.com/dependon/simple-image-filter ,请根据这个项目的内容 ...

  6. 简述odoo18的一个请求执行流程

    以下是Odoo中一个完整请求走向的每一步所涉及的技术细节: 用户发起请求: 技术:HTTP/HTTPS协议,通过Web浏览器或其他HTTP客户端库. 到达WSGI服务器: 技术:通常使用Gunicor ...

  7. 面试题-简单介绍 Spring MVC 执行流程或者Spring MVC的工作原理

    摘要 简单介绍一下当用户在客户端发起请求后,Spring MVC 的执行流程,提升自己对Spring框架的认知层次.一言以蔽之,解答[Spring MVC的工作原理是什么],这是一个热点面试题.    ...

  8. 在Amazon Q辅助下,半小时开发了一个俄罗斯方块游戏

    大家好,我是晓凡 写在前面 在AI的辅助下,晓凡基于HTML.CSS和JavaScript 开发了简单的俄罗斯方块游戏. 小伙伴们可直接跳转文末获取源码. 一.最终效果 二.功能特点 7种经典方块形状 ...

  9. The length of parametric curve (x + sin x, cos x)

    问题引入 一个硬币(圆)的周长上有一个点,将硬币在一条线上无滑动地滚动.假设那个点开始时在最上面,滚了半圈到了最下面,求这个点相对于地面的运动轨迹的长度. 或者说,再简单点,自行车总骑过吧.假如你在骑 ...

  10. 洛谷P2024 [NOI2001]食物链 种类并查集

    洛谷P2024 [NOI2001]食物链 题目描述 见食物链 - 洛谷 \(n\le5*10^4\) \(k\le10^5\) Recollection 初中的时候想了一个假掉了的算法想了很久. 刚刚 ...