㈠ 前端经典面试题(60道前端面试题包含JS、CSS、React、浏览器等)
防抖
节流
误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的。
实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是来源与浏览器或web服务器,浏览器或web服务器限制了url的长度。为了明确这个概念,我们必须再次强调下面几点:
补充补充一个get和post在缓存方面的区别:
可从IIFE、AMD、CMD、CommonJS、UMD、webpack(require.ensure)、ES Mole、
vue和react都是采用diff算法来对比新旧虚拟节点,从而更新节点。在vue的diff函数中(建议先了解一下diff算法过程)。在交叉对比中,当新节点跟旧节点 头尾交叉对比 没有结果时,会根据新节点的key去对比旧节点数组中的key,从而找到相应旧节点(这里对应的是一个key => index 的map映射)。如果没找到就认为是一个新增节点。而如果没有key,那么就会采用遍历查找的方式去找到对应的旧节点。一种一个map映射,另一种是遍历查找。相比而言。map映射的速度更快。vue部分源码如下:
创建map函数
遍历寻找
在React中, 如果是由React引发的事件处理(比如通过onClick引发的事件处理),调用setState不会同步更新this.state,除此之外的setState调用会同步执行this.state 。所谓“除此之外”,指的是绕过React通过addEventListener直接添加的事件处理函数,还有通过setTimeout/setInterval产生的异步调用。
**原因:**在React的setState函数实现中,会根据一个变量isBatchingUpdates判断是直接更新this.state还是放到队列中回头再说,而isBatchingUpdates默认是false,也就表示setState会同步更新this.state,但是, 有一个函数batchedUpdates,这个函数会把isBatchingUpdates修改为true,而当React在调用事件处理函数之前就会调用这个batchedUpdates,造成的后果,就是由React控制的事件处理过程setState不会同步更新this.state 。
虚拟dom相当于在js和真实dom中间加了一个缓存,利用dom diff算法避免了没有必要的dom操作,从而提高性能。
具体实现步骤如下:
用 javaScript 对象结构表示 DOM 树的结构;然后用这个树构建一个真正的 DOM 树,插到文档当中
当状态变更的时候,重新构造一棵新的对象树。然后用新的树和旧的树进行比较,记录两棵树差异
把2所记录的差异应用到步骤1所构建的真正的DOM树上,视图就更新了。
结构:display:none: 会让元素完全从渲染树中消失,渲染的时候不占据任何空间, 不能点击, visibility: hidden:不会让元素从渲染树消失,渲染元素继续占据空间,只是内容不可见,不能点击 opacity: 0: 不会让元素从渲染树消失,渲染元素继续占据空间,只是内容不可见,可以点击
继承:display: none:是非继承属性,子孙节点消失由于元素从渲染树消失造成,通过修改子孙节点属性无法显示。visibility: hidden:是继承属性,子孙节点消失由于继承了hidden,通过设置visibility: visible;可以让子孙节点显式。
性能:displaynone : 修改元素会造成文档回流,读屏器不会读取display: none元素内容,性能消耗较大 visibility:hidden: 修改元素只会造成本元素的重绘,性能消耗较少读屏器读取visibility: hidden元素内容 opacity: 0 :修改元素会造成重绘,性能消耗较少
联系:它们都能让元素不可见
常用的一般为三种 .clearfix , clear:both , overflow:hidden ;
比较好是 .clearfix ,伪元素万金油版本,后两者有局限性.
clear:both :若是用在同一个容器内相邻元素上,那是贼好的,有时候在容器外就有些问题了, 比如相邻容器的包裹层元素塌陷
overflow:hidden :这种若是用在同个容器内,可以形成 BFC 避免浮动造成的元素塌陷
概念:将多个小图片拼接到一个图片中。通过 background-position 和元素尺寸调节需要显示的背景图案。
优点:
缺点:
block 元素特点:
1.处于常规流中时,如果 width 没有设置,会自动填充满父容器 2.可以应用 margin/padding 3.在没有设置高度的情况下会扩展高度以包含常规流中的子元素 4.处于常规流中时布局时在前后元素位置之间(独占一个水平空间) 5.忽略 vertical-align
inline 元素特点
1.水平方向上根据 direction 依次布局
2.不会在元素前后进行换行
3.受 white-space 控制
4. margin/padding 在竖直方向上无效,水平方向上有效
5. width/height 属性对非替换行内元素无效,宽度由元素内容决定
6.非替换行内元素的行框高由 line-height 确定,替换行内元素的行框高由 height , margin , padding , border 决定 7.浮动或绝对定位时会转换为 block 8. vertical-align 属性生效
GIF :
JPEG :
PNG :
七种数据类型
(ES6之前)其中5种为基本类型: string , number , boolean , null , undefined ,
ES6出来的 Symbol 也是原始数据类型 ,表示独一无二的值
Object 为引用类型(范围挺大),也包括数组、函数,
输出结果是:
工厂模式
简单的工厂模式可以理解为解决多个相似的问题;
单例模式
只能被实例化(构造函数给实例添加属性与方法)一次
沙箱模式
将一些函数放到自执行函数里面,但要用闭包暴露接口,用变量接收暴露的接口,再调用里面的值,否则无法使用里面的值
1.字面量
2.Object构造函数创建
3.使用工厂模式创建对象
4.使用构造函数创建对象
HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件onclick、页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件侦听器来预订事件。想要知道这些事件是在什么时候进行调用的,就需要了解一下“事件流”的概念。
什么是事件流:事件流描述的是从页面中接收事件的顺序,DOM2级事件流包括下面几个阶段。
addEventListener : addEventListener 是DOM2 级事件新增的指定事件处理程序的操作,这个方法接收3个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。最后这个布尔值参数如果是true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段调用事件处理程序。
IE只支持事件冒泡 。
获取一个对象的原型,在chrome中可以通过__proto__的形式,或者在ES6中可以通过Object.getPrototypeOf的形式。
那么Function.proto是什么么?也就是说Function由什么对象继承而来,我们来做如下判别。
我们发现Function的原型也是Function。
我们用图可以来明确这个关系:
这里来举个栗子,以 Object 为例,我们常用的 Object 便是一个构造函数,因此我们可以通过它构建实例。
则此时, 实例为instance , 构造函数为Object ,我们知道,构造函数拥有一个 prototype 的属性指向原型,因此原型为:
这里我们可以来看出三者的关系:
在 JS 中,继承通常指的便是 原型链继承 ,也就是通过指定原型,并可以通过原型链继承原型上的属性或者方法。
在函数式编程中,函数是一等公民。那么函数柯里化是怎样的呢?
函数柯里化指的是将能够接收多个参数的函数转化为接收单一参数的函数,并且返回接收余下参数且返回结果的新函数的技术。
函数柯里化的主要作用和特点就是参数复用、提前返回和延迟执行。
在一个函数中,首先填充几个参数,然后再返回一个新的函数的技术,称为函数的柯里化。通常可用于在不侵入函数的前提下,为函数 预置通用参数 ,供多次重复调用。
call 和 apply 都是为了解决改变 this 的指向。作用都是相同的,只是传参的方式不同。
除了第一个参数外, call 可以接收一个参数列表, apply 只接受一个参数数组。
bind 和其他两个方法作用也是一致的,只是该方法会返回一个函数。并且我们可以通过 bind 实现柯里化。
如何实现一个 bind 函数
对于实现以下几个函数,可以从几个方面思考
如何实现一个call函数
如何实现一个apply函数
箭头函数其实是没有 this 的,这个函数中的 this 只取决于他外面的第一个不是箭头函数的函数的 this 。在这个例子中,因为调用 a 符合前面代码中的第一个情况,所以 this 是 window 。并且 this 一旦绑定了上下文,就不会被任何代码改变。
关于 let 的是否存在变量提升,我们何以用下面的例子来验证:
let 变量如果不存在变量提升, console.log(name) 就会输出 ConardLi ,结果却抛出了 ReferenceError ,那么这很好的说明了, let 也存在变量提升,但是它存在一个“暂时死区”,在变量未初始化或赋值前不允许访问。
变量的赋值可以分为三个阶段:
关于 let 、 var 和 function :
依次输出:undefined -> 10 -> 20
答案: D
colorChange 方法是静态的。静态方法仅在创建它们的构造函数中存在,并且不能传递给任何子级。由于 freddie 是一个子级对象,函数不会传递,所以在 freddie 实例上不存在 freddie 方法:抛出 TypeError 。
1.使用第一次push,obj对象的push方法设置 obj[2]=1;obj.length+=1 2.使用第二次push,obj对象的push方法设置 obj[3]=2;obj.length+=1 3.使用console.log输出的时候,因为obj具有 length 属性和 splice 方法,故将其作为数组进行打印 4.打印时因为数组未设置下标为 0 1 处的值,故打印为empty,主动 obj[0] 获取为 undefined
undefined {n:2}
首先,a和b同时引用了{n:2}对象,接着执行到a.x = a = {n:2}语句,尽管赋值是从右到左的没错,但是.的优先级比=要高,所以这里首先执行a.x,相当于为a(或者b)所指向的{n:1}对象新增了一个属性x,即此时对象将变为{n:1;x:undefined}。之后按正常情况,从右到左进行赋值,此时执行a ={n:2}的时候,a的引用改变,指向了新对象{n:2},而b依然指向的是旧对象。之后执行a.x = {n:2}的时候,并不会重新解析一遍a,而是沿用最初解析a.x时候的a,也即旧对象,故此时旧对象的x的值为{n:2},旧对象为 {n:1;x:{n:2}},它被b引用着。后面输出a.x的时候,又要解析a了,此时的a是指向新对象的a,而这个新对象是没有x属性的,故访问时输出undefined;而访问b.x的时候,将输出旧对象的x的值,即{n:2}。
在比较相等性,原始类型通过它们的值进行比较,而对象通过它们的引用进行比较。 JavaScript 检查对象是否具有对内存中相同位置的引用。
我们作为参数传递的对象和我们用于检查相等性的对象在内存中位于不同位置,所以它们的引用是不同的。
这就是为什么 { age: 18 } === { age: 18 } 和 { age: 18 } == { age: 18 } 返回 false 的原因。
所有对象键(不包括 Symbols )都会被存储为字符串,即使你没有给定字符串类型的键。这就是为什么 obj.hasOwnProperty(Ƈ') 也返回 true 。
上面的说法不适用于 Set 。在我们的 Set 中没有 “1” : set.has(Ƈ') 返回 false 。它有数字类型 1 , set.has(1) 返回 true 。
这题考察的是对象的键名的转换。
catch 块接收参数 x 。当我们传递参数时,这与变量的 x 不同。这个变量 x 是属于 catch 作用域的。
之后,我们将这个块级作用域的变量设置为 1 ,并设置变量 y 的值。现在,我们打印块级作用域的变量 x ,它等于 1 。
在 catch 块之外, x 仍然是 undefined ,而 y 是 2 。当我们想在 catch 块之外的 console.log(x) 时,它返回 undefined ,而 y 返回 2 。
㈡ 量子坍塌是什么意思
量子坍塌是指:观察前,量子以波的形式存在(体现发现该量子的概率)。
当观察时,量子必定存在于一个确定的位置,即原来的量子波坍缩为一点(也可称作针状波),此时量子表现出粒子性。(量子的)
这是一种非计算过程,不受计算法则驱动;而算法却是大部分物理学的基本属性,计算机必须受计算法则的驱动。对于非计算过程,量子波在某个位置的坍塌,决定了位置的随机选择。波函数塌缩的随机性,不受算法的限制。
精神、物质和量子力学
美国物理学家亨利·斯塔普1993年出版了着作《精神、物质和量子力学》,他的解释更为客观,结合了自行坍塌理论、波函数的确定性演进,非确定性坍塌被看作是两个真实的、本体上截然不同的现象。
大脑中发生的坍塌事件,即大脑意识的观察或测量更加尤其重要。他认为坍塌是一个精神过程,是大脑状态的自然演进。他的解释是哲学和二元论的结合。
坍塌从各种可能性中选择了一个确定存在,这其实是个选择的过程,而不是随机掷骰子。他的解释涉及到时间因素。按照块区宇宙论,未来依赖于当前的决策,不是早已存在,而是有主观参与的演进宇宙,就像怀海特的形而上学。
㈢ 岩溶塌陷评价预警
一、评价理论体系
针对以往区域岩溶塌陷灾害调查研究的基本问题,这里引用刘传正教授提出的“地质灾害递进分析的理论概念体系”,以枣庄市附近作为典型地段,用“发育度”、“潜势度”、“危险度”及“危害度”来表征该区岩溶塌陷的发育、发展和危害程度(图8-8)。
(一)岩溶塌陷灾害“发育度”
反映一个地区岩溶塌陷灾害的发育程度,是已发生地质灾害的空间数量与面积分布的综合表现(以单位面积点数来描述灾害现状)。
(二)岩溶塌陷灾害“潜势度”
是岩溶塌陷灾害孕育生成的条件组合或潜在能力的评价指标,代表着一个地区地质环境的特征,是反映地质灾害生成内因的一种综合表达(以地质环境要素组合描述)。
(三)岩溶塌陷灾害“危险度”
反映一个地区在一定时间内因某种诱发因素作用(自然或人为因素)导致地质灾害发生的可能性大小的量化表达,即地质灾害预警等级的量化表达,是描述一种或多种突发因素参与下,岩溶塌陷灾害发生的可能程度。
(四)岩溶塌陷灾害“危害度”
岩溶塌陷灾害发生过程及其结局对地质环境和人类社会的危害联系起来,是地质灾害空间自然属性和社会属性的综合表现,用以确定一个地区是否应进行地质灾害防治以及进行何等程度的防治,也反映了一个地区社会经济活动的易损性和综合抗灾能力,从而为制订科学的防灾规划提供依据,也作为确定预警等级和启动政府社会减灾应急反应机制的依据(描述岩溶塌陷灾害“危险度”对一个地区造成的危害程度)。
二、评价因子的选取
(一)岩溶塌陷灾害“发育度”(n)
岩溶塌陷的发育强度是根据岩溶塌陷密度系数n(单位为点/km2)来表达,按照表8-6标准,岩溶塌陷发育度可划分出中等发育区和弱发育区两类(图8-9)。其中十里泉、东王庄、丁(佟)庄—黄楼、付刘耀及良辛庄等5个地段为塌陷中等发育区(A2),多集中于供水水源地开采井附近及河道、坑塘等地形低洼处,塌陷密度系数n=10~100点/km2;上述几个地段外围碳酸盐岩分布区为塌陷弱发育区(A3),塌陷密度系数n<10点/km2。
表8-6 岩溶塌陷强度划分标准
(据刘传正,2000)
图8-9 东王庄—良辛庄地区岩溶塌陷发育度示意图
(二)岩溶塌陷灾害“潜势度”
岩溶塌陷的发育、生成受地质环境条件的制约,其中岩溶地层和浅部岩溶发育程度、覆盖层的厚度和岩性与结构、地形地貌及距地表水距离等为产生岩溶塌陷的内孕因素,是岩溶塌陷灾害趋势预测的基础,可为灾害单因素预警或综合预警提供基础指标,具体量值是通过岩溶塌陷灾害基础因子与响应因子计算实现的。
计算公式采用综合指数模型可写成:
山东省地质环境问题研究
式中:Qi为第i单元的“潜势度”指数;j为评价因子;ai为第j评价因子在第i评价单元的赋值;bj为第j个评价因子的权重;m为评价单元数;n为评价因子数。
此时,地质环境要素组合为基础因子,而灾害的面积模数比作为灾害发生潜势的一种响应,也是基础因子的组成部分,反映地质环境的脆弱性,是灾害发生潜能的一种响应,即把“发育因子”也称“响应因子”。
因子选取与分级是否合理将关系到“潜势度”计算分区的准确性,合理的因子选择有利于把握其潜在发展趋势,不合理的选择势必导致错误的结果,并同时影响后续的计算正确性。合理性主要表现在因子与灾害之间关联性好,因子全面,各因子相互独立,且在研究区有不同层次等级。根据灾害因子分析,选取基础因子(岩性组合、第四系厚度与岩性、地形地貌)和响应因子(即发育因子———面积模数比)作为灾害“潜势度”的判别因子。
判别因子一般分为四级。各指标量值的赋值主要以调查资料的统计分析为基础,综合分析地质灾害与基础因子和响应因子的关系后对其进行分级。根据各因子与灾害分布的关系程度研究和专家经验确定各因子权重,最终形成潜势度判别因子指标量值及权重表。
(三)岩溶塌陷灾害“危险度”
“危险度”是在潜势度分析基础上叠加诱发因子进行的,选取地下水条件(地下水面与基岩面距离、地下水水位变幅和地下水径流强度)、降水条件和人为因素等因子。
同样采用综合指数模型:
山东省地质环境问题研究
式中:Wi为第i单元的“危险度”指数;j为评价因子;ai为第j评价因子在第i评价单元的赋值;bj为第j个评价因子的权重;m为评价单元数;p为评价因子数。
“危险度”判别因子选取原则是从地质环境的角度出发,既要充分考虑地质灾害发生形成的内在基本因素(地形地貌、岩性组合等),又要兼顾诱发其发生的外部因素,通常指大气降雨、人类工程活动(开采地下水)等。
根据研究区内地质灾害调查的实际资料及已有的工作经验,“危险度”计算需要的判别因子分为三大类:基础因子、响应因子和诱发因子。
诱发因子的赋值依据是根据研究区的地质灾害发生历史,特别是统计分析不同地段不同诱发因素的临界值范围。赋值范围分为4级,最高值为4,最小值取1。如遇多个诱发因子参与计算,权值根据诱发因素的相对重要性确定。
(四)岩溶塌陷“危害度”
“危害度”指地质灾害发生后对其影响区内各类承灾体的伤害或财产破坏损失程度,它是地质灾害社会属性的表现形式。
重点考虑灾害的强度与受灾体的易损性,并用量化指标表示为
山东省地质环境问题研究
式中:r1,r2,r3,……,rn是反映灾害危害的因素值。
岩溶塌陷灾害“危害度”与“危险度”、承灾体的易损性密切相关。承灾体易损性是一个难以确定的变量,它不仅与承灾体类型、结构功能等有关,而且与其所处的空间位置(离灾害体远近、灾害体的不同部位)有很大关系。
总体上,地质灾害对社会造成的破坏,表现为人员伤亡、价值损失,以及无法用货币衡量的环境破坏效应。
“危害度”单元评价模型一般写成:
山东省地质环境问题研究
式中:Ri为单元危害度;Wi为单元危险度;Vi为单元受灾体易损性指数。
实际计算“危害度”时常常很困难,主要是很难得到比较准确的数据。本次选取的易损因子为水源地的受损程度,即塌陷体距抽水井距离,距塌陷体远,地下水受塌陷下渗地表污水的影响较小,而距塌陷体近,受地表污水的下渗影响则大,受灾体的危害度则大,另外应考虑塌陷对当地人员的损害程度等因素。
在“危害度”大或较大的地区应实施岩溶塌陷治理工程,可避免岩溶塌陷灾害危及当地人民的生产、生活,以保护地质环境和经济社会良性发展。
由于各评价因子的发育程度与评价单元的相对位置不同,对各评价单元岩溶塌陷的影响程度也不尽相同。根据岩溶塌陷形成临界条件和影响因素分析,将岩溶塌陷发育度、潜势度、危险度和危害度的9个条件16种因子作为层次模糊评价因子(图8-10)。
图8-10 岩溶塌陷“四度”层次结构模型分析图
三、评价预警分区
(一)评价因子的等级划分及赋值
将9个条件16种因子的等级指标和赋值列于表8-7中。
评价因子分定性指标和定量指标两类。定性指标是离散性取值,其隶属函数为其相应指标所对应的级别;定量指标常常是连续性区间限值,各级别虽有界限值,但实际上往往呈过渡状态,对定量指标隶属函数的取值原则是取各级别界限值上、下值的中值作为各级别界限的过渡函数;其余定量指标区间值属于相应的级别。
(二)评价模型及评价指标值的采集
1.评价模型
采用层次模糊数学评价模型,将评价目标(A)划定评价集为
A={危害性小(a1),危害性中(a2),危害性较大(a3),危害性大(a4)}
相应的条件层(B)各评价指标对(A)的评价模糊子集为
山东省地质环境问题研究
山东省地质环境问题研究
相对应的因子层(C)评价指标对(A)评价模糊子集为
在所建立的模型中,基本层有9个评价指标,因子层有16个评价指标,则评价单元j所构成的相应模糊子集为
山东省地质环境问题研究
表8-7 枣庄市岩溶塌陷评价预警因子等级和赋值表
权重的确定,是判断矩阵的元素反映了研究者对影响因子之间相对重要性的认识。本次所选用的权重,均采用本地专家经验法和试算法确定,即先由专家经验确定一套试算权重初值,选择一些塌陷程度不同的实例单元进行权重反演,若相差太大时,则再对权值进行调整,直到调试合理后方可作为计算权值。由此得出各因子权值(表8-8)。各层指标权重的模糊子集W。
对于基本条件层:
对于因子层: ,则有
Wc={0.10000,0.02500,0.17500,0.10178,0.02545,0.01277,0.07000,0.08000,0.06576,0.03642,0.04782,0.10000,0.06750,0.02250,0.03500,0.03500}。
于是得到某评价单元j评价集的计算模型:
山东省地质环境问题研究
式中:a1,a2,a3,a4,分别为危害性小,危害性中,危害性较大,危害性大。
通过不同层次、不同影响因子的权重,以此来刻画各影响因素对岩溶塌陷产生的影响程度及影响因素之间的组合效应,然后在确定各因子隶属度的基础上进行多因子综合,得到各单元的岩溶塌陷预测结果。
表8-8 各评价因子权重分配表
2.评价指标值的采集
塌陷发育度由实际计算得出;岩溶地层是由评价点所处位置的实际地层确定,岩溶发育程度则根据钻孔资料、物探资料和地下水富水程度等来确定;土层厚度、地层岩性和结构由附近钻孔和调查所得;地下水面与基岩面的距离由基岩埋深与地下水水位计算求取,地下水水位变幅是由2003年枯丰水期水位计算所得,地下水径流强度则由预测点在地下水径流带的位置而定;距地表水体距离是实测值;大气降水是实际数据;距抽水井的距离是实测值,抽水强度由实际调查所得;地形变化由预测点所在的实际情况确定,塌陷发育程度依塌陷所在的塌陷发育度来确定;损失程度是根据《地质灾害防治条例》的要求界定。
(三)评价单元划分及层次模糊综合预测
利用计算机的栅格化功能,将工作区120km2划分为500m×500m的方格,共480个小方格作为评价单元,并通过GIS从属性库中读出每个评价单元的所有指标的实际值,确定各评价指标的隶属函数值,然后列出每个评价单元的隶属函数矩阵Cj,各预测因子的权重Wc,运用层次模糊判别原理建立的计算模型:
Aj=WcCj(j=1,2,3,…,480)
由此计算出每个单元的模糊评价集:
Aj={a1,a2,a3,a4}
按照隶属度最大原则,最大值则为该预测单元所对应的级别。
以上过程通过编制程序自动完成,并将评判结果存到预测单元的属性库中,最后根据计算结果,把相同隶属度的单元划分为同一级别,从而得出枣庄岩溶塌陷评价预警分区。
如在十里泉地段(十里泉北)的第341评价单元,实际取值为(100,三山子组白云岩,强烈发育,5.00,含砾粉质粘土,一元,低洼地,30.00,8.03,5,强,621,100,31900,3,1000)。
该评价点相应的模糊子集C341为
山东省地质环境问题研究
因子层相对于目标层的权重值Wc={0.10000,0.02500,0.17500,0.10178,0.02545,0.01277,0.07000,0.08000,0.06576,0.03642,0.04782,0.10000,0.06750,0.02250,0.03500,0.03500},则目的层隶属函数计算结果为
A341=WcC341={0.10076,0.0000,0.37750,0.52174}
则a4>a3>a1>a2,即该评价单元属a4,为危害度大的级别。依此计算出全区480个评价单元的Aj值。
(四)评价分区
对于研究区北部的石炭-二叠系含煤地层区及东北角的变质岩分布区,面积为30.83km2,是非可溶岩分布区,不存在岩溶塌陷问题,可作为危害度小区(表8-9)。
在碳酸盐岩分布区岩溶塌陷评价结果分为危害度小区,面积28.80km2;
危害度中等区,面积27.06km2;
危害度较大区,面积28.48km2;
危害度大区,点状分布于十里泉、东王庄、丁(佟)庄和良辛庄等地段,面积分别为2.88km2、0.98km2、0.70km2和0.27km2。
表8-9 枣庄岩溶塌陷评价预警分区表