首页 > 其他分享 >JS数据类型、流程控制、函数、内置对象、BOM和DOM

JS数据类型、流程控制、函数、内置对象、BOM和DOM

时间:2022-08-25 22:34:04浏览次数:93  
标签:function 函数 DOM 对象 数据类型 JS python var

目录

一、JS数据类型之布尔值

python中:bool
	True
	False:0/None/''/[]/{}/()
        
JS中:boolean
	true
	false:(空字符串)/0/null/undeffined/NaN
     
null与undefined的区别
	null:可以理解值为空的变量
	undefined:可以理解为变量不存在

二、JS数据类型之对象(object)

1.对象之数组(相当于python中的列表)

使用单独的变量名来存储一系列的值。

'''在JS中也是一切皆对象'''
  let l1 = [1,2,3,'sss']

2.方法

方法 说明
.length 数组的大小
.push(ele) 尾部追加元素
.pop 获取尾部的元素
.unshift(ele) 头部插入元素
.shift() 头部移除元素
.slice(start,end) 切片
.reverse() 反转
.join(seq) 将数组元素连接成字符串
.concat(val,...) 连接数组
.sort() 排序
.forEach() 将数组的每个元素传递给回调函数
.splice(index(起始索引位置),howmany(删除数量),items(添加的新元素)) 删除元素,并向数组添加新元素
.map 返回一个数组元素调用函数处理后的值的新数组


2.1.forEach

forEach(function(currentValue, index, arr), thisValue)

参数 说明
function(currrentValue(必需,当前元素),index(元素的索引值),arr(元素所属数组)) 必需。数组中每个元素需要调用的函数
thisValue 可选。传递给函数的值一般用‘this’值
如果这个参数为空,‘undefined’会传递给‘this’值

2.2.map

map(function(currentValue,index,arr), thisValue)

参数 说明
function(currrentValue(必需,当前元素),index(元素的索引值),arr(元素所属数组)) 必需。数组中每个元素需要调用的函数
thisValue 可选。传递给函数的值一般用‘this’值
如果这个参数为空,‘undefined’会传递给‘this’值

三、JS数据类型之自定义对象(object)

1.自定义对象(相当于python中的字典)

定义方式1:
	let d1 = {'name':'zhang','pwd':123}
定义方式2:
	let d2 = new Object()
自定义对象操作数据值的方式更简单,直接使用句点符

'''python中让字典也可以通过句点符操作字典的数据值'''
class MyDict(dict):
    def __getattr__(self, item):
        return self.get(item)

    def __setattr__(self, key, value):
        self[key] = value

d1 = MyDict()
d1.name = 'jason'
print(d1)
d1.name = 'zhang'
print(d1)
# {'name': 'jason'}
# {'name': 'zhang'}

四、运算符

var x=10;
var res1=x++;  # 先赋值后自增
var res2=++x;  # 先自增后赋值
运算符 作用
== 弱等于(自动转换成相同的数据类型,再比较)
=== 强等于(不自动转换数据类型)
&& 等价于python的 and
|| 等价于python的 or
等价于python的 not

五、流程控制

1.分支结构

1.单if分支:
	if(条件){条件成立后执行的代码}
    
2.if...else分支:
	if(条件){
        条件成立执行的代码
    }else{
        条件不成立执行的代码
    }
     
3.if...else if ...else分支:
	if(条件一){
        条件一成立后执行的代码
    }else if(条件二){
        条件二成立后执行的代码
    }else{
        所有条件不成立后执行的代码
    }
'''
day = new Date().getDay()

switch (day) {
  case 0:
  	console.log("Sunday");
  	break;
  case 1:
  	console.log("Monday");
  	break;
  case 4:
    console.log("Turseday");
    break
  default:
  	console.log("不在范围内")
}
'''

2.循环结构

for(let i=1;i<101;i++){
    console.log(i)
}
# for循环小练习
打印数组内所有的数据值
for(let i=0,i<l1.lenth;i++){
    console.log(l1[i])
}

while(条件){
    循环体代码
}
# while循环小练习
let l1 = [456,33,110,11,22]
let num=0;
while(num<l1.length){
    console.log(l1[num]);
    num++;
}

六、函数

1.格式

'''
在python中:
	def 函数名(形参):
		函数体代码
		return 返回值
'''
function 函数名(形参){
    函数体代码
    return 返回值
}

function func1(a,b){
    console.log(a,b)
}
func1()
# undefined undefined

参数的个数不需要一一对应,也能调用函数。
如果要限制参数个数,需要使用内置关键字arguments做判断
(arguments会接收参数)
function func1(a,b){
    if (arguments.length===2){
    console.log(a,b)
    }
    else{
    console.log("没有给参数!!")
    }
}

2.匿名函数

1.在python中:
	格式:lambda 形参:返回值(返回表达式运行后的结果)
	构建的是一个函数对象,需要用一个变量名去接收返回值
	匿名函数通常配合其他函数一起使用,用于减少代码
    res = (lambda x: x + 100)
    print(res(100))  # 200
2.JS中:
	fuction(形参){
        函数体代码
        return 返回值
    }

	function(a,b){
    return a+b
	}
    # 如果要调用匿名函数需要给一个变量名
    res = function(a,b){
        return a+b
    }

3.箭头函数

var f = function(v){
    return v;
}
等同于:var f = v =>v;

# 如果不需要参数,用()代替参数的位置
var f=()=5;
等同于:
function f(){return 5;}

var sum=(a,b)=>a+b
等同于:
    function sum(a,b){
        return a+b;
        # 这里的return只能返回一个值,如果要返回多个值,需要手动包一个数组或对象
    }
function sum1(a,b){
    kk=a+b;
    cc=a*b;
    l1 = [kk,cc]  # 包成数组
    return l1;
}

七、JS内置对象

1.描述

类似于python中的内置函数或者内置模块

2.固定语法

var 变量 = new 内置对象名();

3.内置对象

3.1.Date日期对象

var d1 = new Date();
console.log(d1.toLocaleString())
#VM227:1 2022/8/25 21:03:31

var d2 = new Date("2001/1/1 11:20")
console.log(d2.toLocaleString())
#VM465:1 2001/1/1 11:20:00

var d3 = new Date("04/03/02 11:20")
console.log(d3.toLocaleString())
#VM664:1 2002/4/3 11:20:00

var d4=new Date(5000)
console.log(d4.toLocaleString())
#VM844:1 1970/1/1 08:00:05
console.log(d4.toUTCString())
# VM939:1 Thu, 01 Jan 1970 00:00:05 GMT

var d4 = new Date(2004,2,20,11,12,0,300);
console.log(d4.toLocaleString()); 
# VM1159:2 2004/3/20 11:12:00

date对象方法

方法 说明
getDate() 获取日
getDay() 获取星期
getMonth() 获取月(0-11)
getFullYear() 获取完整年份
getYear() 获取年
getHours() 获取小时
getMinutes() 获取分钟
getSeconds() 获取秒钟
getMilliseconds() 获取毫秒
getTime 返回累计毫秒数(从1970/1/1午夜)

3.2.JSON序列化对象

            
    python中的序列化:
        import json
        json.dumps()
        json.lodas()
    JS中的序列化:
        JSON.stringify()
        JSON.parse()

3.3.RegExp正则对象

表达方式

var reg1 = new RegExp("^[a-zA-z0-9]")
var reg2 = /^[a-zA-z0-9]{3,6}$/

校验数据

reg1.test('zhang888')
# true
reg2.test('zhang888')
# false

'''
注意事项1:正则表达式不能有空格
'''

全局匹配

var s1 = 'ad werhfh jfjwo';
s1.match(/s/)
# null
s1.match(/h/)
# ['h', index: 6, input: 'ad werhfh jfjwo', groups: undefined]
s1.match(/h/g)
# (2) ['h', 'h']

var reg2 = /^[a-zA-z0-9]{3,6}$/g
reg2.test('dahfi')
# true
reg2.test('dahfi')
# false
reg2.test('dahfi')
# true
reg2.test('dahfi')
# false
reg2.lastIndex;
# 0
reg2.test('dahfi')
# true
reg2.lastIndex;
# 5
'''
注意事项2:
全局匹配有lastIndex属性。
全局匹配,每一次匹配,指针会停在最后,下一次校验会报错,报错后从头校验又会报true。
'''

校验不传参数

var reg2 = /^[a-zA-z0-9]{3,6}$/
reg2.test()
#false
reg2.test(undefined)
#false
var reg3 = /undefined/
reg3.test()
# true

八、BOM与DOM操作

1.BOM:浏览器对象模型

通过写js代码可以跟浏览器交互

window.open()
window.close()
window.navigator.userAgent() 
window.history.forward()
window.history.back()
window.location.href  # 获取URL
window.location.href = "新网址"  # 跳转到新网址
window.location.reload()  # 刷新页面

alter()   警告框
	alert ("hello js!")
	# undefined
confirm()  确认框  # 点确定true 取消false
    confirm("确定吗?")
    # true
    confirm("确定吗?")
    # false
prompt()  提示框  # 输入什么得到什么
	prompt("请输入","答案")  # 第二个值是:默认值
	# '答案'
    
定时器相关操作(重要)
function func1(){
    alert('终于要干饭了')
}
let t = setTimeout(func1,3000)  
# 3秒中之后自动执行func1函数
clearTimeout(t)  # 取消上面的定时任务


var s1 = null
function showMsg() {
    function func1(){
        alert('终于要干饭了')
    }
    s1 = setInterval(func1, 3000)
}
function clearMission(){
    clearInterval(s1)
}
setTimeout(clearMission, 9000)
showMsg()

2.DOM:文档对象模型

通过写js代码可以跟html交互

JS操作html和CSS操作html学习套路一致 都是先学如何查找标签

DOM树

img

document:整个页面
1.查找标签
    document.getElementById()
    # 根据id值查找标签 结果直接是标签对象本身
    document.getElementsByClassName()
    # 根据class值查找标签 结果是数组类型
    document.getElementsByTagName()
    # 根据标签名查找标签 结果是数组类型

2.标签元素
    parentElement            # 父节点标签元素
    children                 # 所有子标签
    firstElementChild        # 第一个子标签元素
    lastElementChild         # 最后一个子标签元素
    nextElementSibling       # 下一个兄弟标签元素
    previousElementSibling   # 上一个兄弟标签元素
"""
	let divEle = document.getElementById('d1')
"""

3.节点操作
    let XXXEle = document.createElement('标签名')
    XXXEle.id = 'id值'
    XXXEle.innerText = '内部文本'
    divEle.append(XXXEle)
    # ps:动态创建 临时有效 非永久
4.属性操作
    XXXEle.属性  # 只能是默认属性
    XXXEle.setAttribute()  # 默认属性、自定义属性
5.文本操作
    divEle.innerHTML
    divEle.innerText

    divEle.innerHTML = '<h1>嘿嘿嘿</h1>'
    '<h1>嘿嘿嘿</h1>'
    divEle.innerText = '<h1>哈哈哈</h1>'
    '<h1>哈哈哈</h1>' 

标签:function,函数,DOM,对象,数据类型,JS,python,var
From: https://www.cnblogs.com/Zhang614/p/16625976.html

相关文章

  • JS数据类型与方法
    JS数据类型与方法JS数据类型之布尔值python布尔值(bool)TrueFalse:0,None,空字符(""),空列表([]),空字典({}),空元组()JS布尔值(boolean)true(不需要首字母大写)......
  • 关于js中定时器的返回值问题
    在js中,我们常常会用到定时器来处理各种各样的问题,当我们需要清除定时器的时候,我们常常会定义一个值来接受定时器的返回值,然后再把定义好的这个值写到清除定时器的括弧后面......
  • 探索JS中Object对象的key及key的排序
    首先,JavaScript中Object对象的key均为string类型的值。不过Object对象可以接受任意类型的值作为它的key,原因在于,我们为某个Object对象设定key的过程中会触发JavaScript的......
  • python3 的基础数据类型
    python有六种基本的数据类型,分别是:Numbers数字String字符串List列表Tuple元组Set集合(python3新增)Dictionary字典在这六个基本数据中可变数据类型为:list,set,dict......
  • d3js实现热图--heatmap
    这一章节记录热图,下面是图和实现过程。   1、data这些数据存储在csv文件中x,y,valueA,m1,5A,m2,5.7A,m3,6.6A,m4,5.9A,m5,10.8A,m6,11.5A,......
  • 2022-8-24 js
    JavaScript脚本语言,解释性主要给HTML网页增加动态功能通常的JS是运行在浏览器环境下的,是由浏览器解释执行的,可以控制页面JS分两种模型:DOM:文档对象模型,d......
  • vscode中编写node.js代码的提示功能
    1.安装typings包安装命令//使用cnpm,前提配置好淘宝镜像cnpmitypings-g测试是否安装成功typings--version2.在项目开发目录下打开终端依次执行如下命令......
  • JavaScript知识-函数基础知识、匿名函数、闭包函数、箭头函数、js内置对象和方法
    目录JavaScript函数1.函数的语法格式2.无参函数3.有参函数4.关键字arguments5.函数返回值关键字return6.匿名函数(没有函数名)7.箭头函数8.函数的全局变量与局部变量9.闭包......
  • JS
    JS数据类型之布尔型(boolean)null和undefinedJS数据类型之对象object对象之数组JS数据类型之自定义对象JS之运算符JS之流程控制分支结构循环......
  • js数组对象的遍历
    //数组循环的方法vararr=[{code:10},{value:100},{name:'大乔'},{age:'18'}];//for----offor(letitemofarr){console.log('for--of',......