首页 > 编程语言 >JavaScript基础01

JavaScript基础01

时间:2025-01-14 09:58:48浏览次数:3  
标签:function 01 console name JavaScript 基础 js var log

一、基本情况

#1、介绍

JavaScript是一门解释性的脚本语言,主要用来给HTML网页增加动态功能。

通常的js是运行在浏览器环境下的,可以帮助我们去控制页面,实现丰富的功能。会有dom和bom的api去操作html文档和浏览器的一些功能。

nodejs是运行在计算机环境下的。语法一样,但是因为环境是计算机,他当然不能操作dom和bom。因为压根就没有,但是他能操作文件,能操作数据库,他其实是一门后端的编程语言。

但是nodejs的出现个js提供了蓬勃的生命力,让js更加强大,比如现在流行的一下编程模式,都需要nodejs的支持。

#2、JS解释器

无论是node还是各大浏览器,都需要有解释JS代码的引擎,参考下表浏览器使用的JS解释器

- Mozilla       --    Spidermonkey       火狐
- Chrome        --    v8                 谷歌
- Safari        --    JavaScriptCore     苹果
- IE、Edge      --    Chakra              ie
- node          --    v8                  nodejs

#3、js哪里可以执行

(1)放在html标签之中

<body> 
//中间放页面标签  

//放在body的结束标签之前
<script type="text/javascript">
    document.write('<h1>123</h1>')
</script>
</body>

(2)引入外部的js

<body> 
//中间放页面标签  

//放在body的结束标签之前   
<script src="./index.js"></script>
</body>

#二、数据类型

弱类型自动推断类型

数字(number)

字符串 (string)

布尔型 (boolean)

null是有值但为空,undefined是只是被申明,未赋值

空(null)

未定义( undefined)

#三、定义变量

弱类型,不需要申明这个变量的类型,统一用 var

var num = 10;
var money = 1.2;
//字符串单引号和双引号都行,和java对比
var str = 'str';
var str2 = "str2";
var nul = null;
var flag = true;
//压根就没有定义叫undefined
//数组和对象
var arr = [];
var obj = {};

  因为var有一些弊端,今天就说一个,如果前边定义了一个变量,后边再次定义,就会覆盖,这样会有问题,所有在ES6语法当中新增了let和const两个关键字来定义变量,除此之外还有作用域的问题,有兴趣可以去研究。

var num = 3;
var num = 4;
//前边的值会被后边的覆盖

//你们不用管

//let 和 const 定义的变量不能不覆盖,不能重复定义。
let num = 3;
let num = 4;
//直接会报错

//cosnt定义的叫常量,定义之后的数据不能被修改
const num = 3;
num = 4;
//直接会报错

#四、数组(array)

#1、定义的方式

#(1)使用方法调用
var arr = Array();
//Array 是个函数,猜一猜他的返回值就是个空数组
#(2)使用new关键字
var arr = new Array();
//js里函数可以当类使用
#(3)使用json数组的方式,字面量,个人推荐
var arr = [];

注:js中初始化数组不需要初始化长度

#2、赋值的方式

#(1)定义之后去赋值
arr[0] = 123;
arr[1] = 234;
#(2)定义的时候赋值
//这样当然方便
var arr = [123,234];

#五、方法

js和java定义方法对比

js对参数要求极其灵活,java极其严格

js不需要声明数据类型,java必须声明数据类型

public void getName(){
	System.out.println("123");
}

function getName(){

}

//这种方法没有参数没有返回值,右不打印没用让我们看见就毫无意义
function puls(){
    var a = 1 +1;
}
puls()
undefined

//参数是你要处理的数据,
//返回值就是处理的结果
//返回值可以给
function plus(num1,num2){

    return num1 + num2;

}
plus(23,34)
57

//可以使用另一个变量去接收返回值并进行利用
var num = plus(33,44)
num
77

//方法会在遇到return之后停止运行
function plus(num1,num2){
    console.log("before")
    return num1 + num2;
    console.log("after")
}

plus(34,45)
VM688:2 before
79

return 
1终止当前的方法,不在继续往下执行
2、会将return之后的结果,作为方法执行的结果返回出去
返回出去有什么用,别的变量就能拿到这个值,并进行利用

参数可以没有,可以有一个或多个

返回值要么没有,要么只有一个

#六、 对象(object)

对象是js里最灵活的。

#1、定义空对象

#(1)使用方法调用
var obj = Object();
//Array 是个函数,猜一猜他的返回值就是个空数组
#(2)使用new关键字
var obj = new Object();
//js里函数可以当类使用
#(3)使用json对象的方式,个人推荐
var obj = {};
#(4)自定义对象类型,有点高级,了解

这一点很是灵活,function定义的函数,既能直接调用,也可以像类一样使用new关键字来生成。也就是函数既可以当做普通函数,也能当做构造函数。

其中要注意,要想给new出来的对象添加属性或方法,必须使用this关键字,不写不行。

命名规范和java一样,首字母大写,驼峰式命名。

function User(name){
    this.name = name;
}

var user = new User('wusanshui');
console.log(user.name)

#2、给对象添加属性和方法

#(1)定义了对象之后
obj.name = 'zhangsan';
obj.age = 18;
onj.eat = function(){
	console.log(" I am eating! ")
}
#(2)定义类的时候
//直接用json对象写一个对象出来
var user = {
    name: 'zhangsan',
    age: 10,
    eat: function(){
        console.log("i am eating!");
    }
}

#(3)自定义类的时候

一定要注意和java的区别

function User(name){
    this.name = name;
    this.age = 18;
    this.eat = function(){
    	console.log("I am eating!")
    }
}

var user = new User('wusanshui');

//new 出来的对象自然而然就拥有这些属性和方法

#3、获取对象的属性的方法

#(1)使用.
console.log(user.name);
调用方法
user.eat();
#(2)使用[]
console.log(user['name']);
调用方法
user['eat']();

#六、判断和循环

和java里的一模一样,简单写一下就行了

#1、if语句

如果条件是一个值:

如果是 0 ‘’ null undefined false 都是false

{} [] 非零的数字 字符串 都是真

var flag = true;

if(flag){
   alert(true)
}else{
   alert(false)
}

#2、switch语句

var m = 2;
var x;
switch (m) { 
  case 0:x="今天是星期日"; 
  break; 
  case 1:x="今天是星期一"; 
  break; 
  case 2:x="今天是星期二"; 
  break; 
}

console.log(x);

#3、循环数组

let cars = [ '兰博基尼','CRV','卡宴',"奔驰是傻逼",'bwm' ];
for (var i=0;i<cars.length;i++)
{ 
    console.log(cars[i]);
}

#4、遍历对象属性

注意:获取对象属性的时候可以用. 也可以用[key]

var options = {
    name: 'zhangsan',
    age: 10
}
for(var attr in options){
    console.log(attr)
    //正确
    console.log(options[attr])
    //错误
    console.log(options.attr)
}

标签:function,01,console,name,JavaScript,基础,js,var,log
From: https://blog.csdn.net/qq_73376107/article/details/145058804

相关文章

  • 2025 Homebrew 配置 brew install 国内镜像源指南,快速安装加速(01月13日更新)
    2025Homebrew配置brewinstall国内镜像源指南,快速安装加速(01月13日更新)大家好!......
  • 【JAVA 基础 第(18)课】HashSet 使用方法详解
    HashSet:Set接口的实现类,存放无序的,不可重复的元素判断是否为重复的对象比较hashCode()方法的返回值,如果不同,判定为不同的对象,如果相同,执行第二步判断equals()方法的返回值,如果为true,则判为相同的对象,如果为false,则为不同的对象publicclassHashSetTest{ publicstatic......
  • 数据库系统设计、实现与管理(基础篇)(etc.)
    pdf-->python33com数据库系统的基本概念:数据库系统是一个用于存储、检索和管理大量数据的软件系统。它提供了数据定义、数据操作、数据控制等功能,以确保数据的完整性、安全性和一致性。数据库设计的重要性:数据库设计是数据库系统建设的核心环节。一个良好的数据库设......
  • xb21cn Office 2016 绿色版 2025更新版
    软件简介office精简版xb21cn最新版是一款微软Office办公软件的免激活office绿色精简版,xb21cn精简office绿色版提供office2010精简版和Office2016精简版,功能保留三大常用组件Word,Excel,PowerPoint,适合日常使用。版本特点MicrosoftOffice2016/2013/2010/2007/2003绿色精......
  • Java基础
    数据类型强类型语言要求变量的使用要严恪符合规定,所有变量都必须先定义后才能使用,初始化(安全)而JavaScript是弱类型语言八大基本数据类型publicclassDemo02{publicstaticvoidmain(String[]args){//八大基本数据类型 //整数 intnum1=10;//最......
  • Java程序基础⑦Java继承和多态
    目录1.继承1.1引入继承1.2继承的概念和语法1.3父类成员访问1.4super关键字1.5 子类构造方法1.6继承时的初始化1.7 继承的方式1.8final关键字2.多态2.1多态的概念2.2多态的实现条件2.3重写2.4向上转型和向下转型2.4.1向上转型2.4.2向下转型2.5......
  • python bs4 selenium 查找a href=javascript:();的实际点击事件和url
    在使用BeautifulSoup和Selenium时,处理href="javascript:;"的链接需要一些额外的步骤,因为这些链接不直接指向一个URL,而是通过JavaScript代码来执行某些操作。这可能包括导航到另一个页面、触发模态窗口、显示/隐藏内容等。以下是如何使用Selenium来查找和处理这......
  • 2025-01-13 闲话
    答应杨卓凡不去北京就每天写闲话,但是今天实在不知道能写啥,于是让chatgpt写。然后被逗笑了。穷尽kimideepseek和chatgpt,只有deepseek的联网搜索,最终给了一个有点人样的仿写。可是ai的generation一点也不口语化,入眼的呆滞与死板就像是水印。看来我们的LLMproducts......
  • Kali高手都在用的环境变量技巧,学会这些就能实现隐蔽渗透!黑客技术零基础入门到精通教程
    大家好,我们今天继续更新《黑客视角下的KaliLinux的基础与网络管理》中的管理用户环境变量。为了充分利用我们的黑客操作系统KaliLinux,我们需要理解和善于使用环境变量,这样会使我们的工具更具便利,甚至具有一定的隐蔽性。1.环境变量基础概念1.1什么是变量?变量在计算机......
  • 深度学习基础理论————DeepSpeed
    DeepSpeed原理DeepSpeed是由微软开发的一种深度学习优化库,专为高性能训练和推理而设计,尤其适用于大规模深度学习模型(如GPT系列、BERT等)。它通过一系列技术和优化策略,帮助研究者和开发者高效利用硬件资源,实现快速训练、降低内存使用以及提升推理速度。正如其官方描述那样:I......